1樓:霞左丞永
這就涉及到python的記憶體管理機制了,python裡面,所有變數都是物件,資料在記憶體中佔用實體記憶體,然後指標的頭指向不同的物件,就好比兩臺相同的電腦,編號卻不一樣,這其實是兩個物件;但是也不是所有物件都是這樣處理的,為了節省記憶體,對於小的整數和短的字串,python在處理的時候會把相同的資料指向不同的物件,但它們的id是一樣的。
python中id函式為什麼會對不同物件返回相同值
2樓:匿名使用者
如果那兩個物件指向的是相同的記憶體地址,也就是說內部指向的其實是一個物件,那他們的id返回值就是一樣的。
python不同程序的類的例項id為什麼一樣的
3樓:譙冷
可以把類當做引數傳入到函式裡,在函式裡進行例項化。如下所示。把類a當做引數傳入get_instance_from_class。
在get_instance_from_class中對a進行例項化,獲得其例項,並返回。12345678910111213class a: def __init__(self):
print "i am a a instance." def print_myself(self): print "print myself.
"def main(): def get_instance_from_class(a): return a() a = get_instance_from_class(a) a.
print_myself() if __name__=="__main__": main()
python 裡的可變物件與不可變物件具體怎麼理解
4樓:琳姞家菲
python的資料型別分為可變(mutable)與不可變(immutable)。不可變型別包含字串(str),整數(int),元組(tuple);可變型別包含列表(list),字典
專(dict)。
是否為可變型別在於記憶體單元的值是否可以被改變。屬如果是記憶體單元的值不可改變的,在對物件本身操作的時候,必須在記憶體的另外地方再申請一塊記憶體單元(因為老的記憶體單元不可變),老的記憶體單元就丟棄了(如果還有其他ref,則ref數字減1,類似unix下的hard-link);如果是可變的,對物件操作的時候,不需要再在其他地方申請記憶體,只需要在此物件後面連續申請(+/-)即可,也就是它的地址會保持不變,但區域會變長或者變短。
關於python中的不可變物件--字串
5樓:gta小雞
不可變物件的意思是不能在原處改變物件的值。不代表不能存在兩個值相同的不可變物件。str(a)和str(b)會各在記憶體中建立一個值為'10'的物件。
新手,一個關於python可變與不可變物件的問題
6樓:匿名使用者
所謂物件的可變與不可變,是看物件是否有hash值。
為什麼python有相同的不可變物件id不同
7樓:匿名使用者
python裡一切都是物件. 所以1,2,3,4...這些整數也都是物件.這些基本的不可變物件在python裡會被頻繁的引用,建立,如果不找到好的辦法的話很容易讓python引發效率瓶頸,所以python引入了整數物件池的機制. python中可變物件和不可變物件的理解,假如x為全域性變數,當x為int即不可變物件時, 8樓:gta小雞 可變物件:可以直接修改物件記憶體中的值。例如修改列表某一項,實際就是修改列表物件中那個元素的值。 不可變物件:不能直接修改物件記憶體中的值,使用=號賦值實際上是在記憶體中建立了一個新物件,並令變數重新指向該新物件。 不是python用json,json是類似xml的一種通用格式,在很多地方都可以用。json相比xml,資料量更小,而且可以很方便的和解釋型語言的結構相互轉換。json是以一種良好的格式來進行資料的互動,從而在很多時候,可以使用json資料格式作為程式之間的介面,今天我也在這個問題上糾結很久。最後才... python程式語言的優點 1 廣泛的資料庫 python有一個可擴充套件的庫,包含了各種區域 其中包含了字串操作 正規表示式等,可以直接拿來使用,直接節省大量的時間。2 可擴充套件性 python具有可拓展性,可以將python直接放置在另外一種 語言中使用,同時python在使用相同位元組 的所... 上一個問題是檔案沒有找到,open的那個地址,下面這個是你要輸出username使用前沒有被賦值 python 錯誤警告 local variable a referenced before assignment 10 在f2 裡面加一句 nonlocal a 就可以,強制的把a宣告成a非本地的區域...python中為什麼用json有什麼作用
Python程式設計有哪些優點,python的優點有哪些
為什麼這段python出現UnboundLocalError