python修改類屬性
1,當類屬性為不可變的值時,不可以通過實例對象去修改類屬性
class Foo(object): x = 1.5 foo = Foo() print(foo.x) #輸出:1.5 print(id(foo.x)) #輸出:2400205363696 foo.x = 1.7 print(foo.x) #輸出:1.7 print(id(foo.x)) #輸出:2400203142352 和上面的id不一樣,表明已經新創建了一個實例屬性 print(Foo.x) #輸出:1.5
2,當類屬性為可變的值時,可以過實例對象去修改類屬性
class Foo(object): x = [1,2,3] foo = Foo() print(foo.x) #輸出:[1, 2, 3] print(id(foo.x)) #輸出:1999225501888 foo.x[2] = 4 print(foo.x) #輸出:[1, 2, 4] print(id(foo.x)) #輸出:1999225501888 print(Foo.x) #輸出:[1, 2, 4] foo.x.append(5) print(foo.x) #輸出:[1, 2, 4, 5] print(id(foo.x)) #輸出:1999225501888 print(Foo.x) #輸出:[1, 2, 4, 5]