in [17]: a = 'abc'
in [18]: b = a
in [19]: a
out[19]: 'abc'
in [20]: b
out[20]: 'abc'
python直譯器會做:
in [47]: a = 'abc'
in [48]: a.replace('a', 'a')
out[48]: 'abc'
in [49]: a
out[49]: 'abc'
in [50]: b = a.replace('a', 'a')
in [51]: b
out[51]: 'abc'
in [52]: a
out[52]: 'abc'
str是不變物件,用replace()方法並沒有改變'abc'的內容,而是建立了乙個新的字串"abc",並使b指向'abc'
python中,通常用大寫的變數名表示常量。如:
pi = 3.14159265359
但是實際上pi仍然是乙個變數,因為python中並沒有任何機制保證pi不會被改變,所以用全大寫表示常量,也只是乙個習慣的用法,但是實際上是可以改變的。 python變數賦值方法 可變與不可變
python中不存在所謂的傳值呼叫,一切傳遞的都是物件的引用,也可以認為是傳址。一 可變物件和不可變物件 python在heap中分配的物件分成兩類 可變物件和不可變物件。所謂可變物件是指,物件的內容可變,而不可變物件是指物件內容不可變。不可變 immutable int 字串 string flo...
python可變與不可變
可變與不可變型別的實質實際上就是儲存機制的不同 不可變型別 比如字串 被稱為不可變的字串行,每個字元底層均有規範的unicode碼對應,記憶體規定無法對單一的乙個字元進行修改,要修改字串必須重新指向乙個全新的字串 可變型別 一方面,該列表可以保證在位址不變的前提下,改變列表內容 另一方面,該引用也可...
python可變與不可變
不可變作用和意義 物件所指的記憶體中的值是可以改變的。變數名儲存的是乙個位址,該位址指向乙個具體的物件,並且不管對變數的值進行怎樣的操作,都不會改變變數名的儲存位址。字典dict 列表list 集合set 1.list list1 1 2,3 4 print list1,id list1 1,2,3...