Python中的變量引用對象需注意的幾點?
給你介紹python中普通引用和共享引用在引用對象中需要注意的點:
普通引用:
Python中,變量的作用僅僅是一個標識,只有賦值后才被創建,它可以引用任何類型的對象,而且在引用之前必須賦值。賦值后的變量指向響應的對象,擁有該對象的空間。類型屬于對象,但是不是變量。
[python]
view plain copy
a = 3
a = "science"
上述代碼說明數值3和字符串“science”分別是兩種對象,初始變量a賦值對象3被創建,變量a指向對象3的內存空間,之后變量a又指向了字符串的內存空間。
共享引用:
[python]
view plain copy
a = 3
b = a
上述代碼說明變量a,b同時引用了對象3,兩個變量引用了相同的對象。正是因為兩者都是指向了相同的對象,所以當其中一個變量引用其他對象的時候,不會對另一個變量造成影響。例如:
[python]
view plain copy
a = “science”
在上面代碼的基礎上,變量a引用了字符串對象“science”,此時變量b依舊引用對象3,而不是“science”。
但是有些對象的操作會在原處修改,例如列表。例如:
[python]
view plain copy
a = [1,2,3]
b = a
變量a,b應用了包含1,2,3對象的列表,自然而然的a[0]引用對象1,如果在變量a中執行操作
[python]
view plain copy
a[0] = 4
那么變量b就變隨之變為[4,2,3]。避免這種情況可以使用copy操作,替換引用操作。