请看下面的例子:
class Ciao():
a = 1
def whatIsIt(self):
print(self.a)
i = Ciao()
i.a = 2
i.whatIsIt() #Returns 2
我正在创建类Ciao的一个示例,修改类变量,然后在最后一行打印它,对我来说,类变量a在创建了对象i之后,其行为完全与此代码片段中的示例变量相同。
class Ciao2():
def __init__(self):
self.a = None
def whatIsIt(self):
print(self.a)
i = Ciao2()
i.a = 2
i.whatIsIt() #Returns 2
在示例化对象之后,类和示例变量之间有什么根本的区别吗?
1条答案
按热度按时间shyt4zoc1#
是的,这是一个根本的区别。当变量是可变的(例如列表),并且你使用同一个类的多个示例时,就可以看出这一点。对类变量的更改会影响到所有的示例,但对示例变量的更改不会: