python修改类属性


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]

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM