a是类变量,被类的所有对象共享,a一旦通过类的引用发生改变,则类的所有对象中的a也会发生变化,且可以通过类而不是对象来引用a。但当通过类的一个对象引用改变a时,此改变不会传递到其它对象和类中。比如:
class A(object):
====a='a string'
====def __init__(self,s):
========self.b=s
##可通过类引用a
print(A.a)
##a(a所引用的对象)被所有对象共享
a1=A('a1')
a2=A('a2')
print(id(a1.a)==id(a2.a))
##a通过类的引用发生改变,则类的所有对象中的a也会发生变化
A.a='abc'
print(a1.a,a2.a)
##通过类的一个对象引用改变a,此改变不会传递到其它对象和类中
a1.a='250'
print(A.a,a1.a,a2.a)
温馨提示:内容为网友见解,仅供参考