Python是一門對象和面向?qū)ο蟮恼Z言。在Python中,變量名只是一個指向真實對象的引用。換句話說,Python中的“變量”其實就是一個指向內(nèi)存中某個對象的地址的引用。
a = "Hello World" b = a c = "Goodbye" print(a) # 輸出 “Hello World” print(b) # 輸出 “Hello World” a = c print(a) # 輸出 “Goodbye” print(b) # 輸出 “Hello World”
在上面的代碼中,我們將字符串“Hello World”賦值給變量a,并將a賦值給變量b。此時,a和b都指向同一個字符串對象。接著,我們將字符串“Goodbye”賦值給變量c,再將c賦值給a。此時,a指向新的字符串“Goodbye”,而b仍然指向原來的字符串“Hello World”。
需要注意的一點是,在Python中,不是所有類型的對象都是可變的。例如,如果我們將一個列表對象賦值給一個變量,并修改其中的元素,那么這個列表對象本身就發(fā)生了變化,而不是變量指向的對象發(fā)生了變化。
a = [1, 2, 3] b = a a[0] = 0 print(a) # 輸出 [0, 2, 3] print(b) # 輸出 [0, 2, 3]
在上面的代碼中,我們將一個列表對象賦值給變量a,并將a賦值給b。然后,我們修改了列表的第一個元素,并打印出a和b的值。此時,a和b都指向原來的列表對象,而這個對象本身發(fā)生了改變。
盡管Python的變量和引用機制看起來有點復(fù)雜,但其實只需要理解一些基本概念,就能在實際編程中熟練地使用它們。