【发布时间】:2015-04-26 13:54:36
【问题描述】:
根据documentation:“一般来说,实例变量用于每个实例唯一的数据,类变量用于类的所有实例共享的属性和方法”
>>> class Dog:
... kind='canine'
...
... def __init__(self, name):
... self.name = name
...
>>> d = Dog('Fido')
>>> e = Dog('Buddy')
>>> d.name
'Fido'
>>> e.name
'Buddy'
>>> d.kind
'canine'
>>> e.kind
'canine'
>>> d.kind='cat' # changed supposedly shared variable to cat
>>> d.kind # OK here
'cat'
>>> e.kind # Not expected output (should be cat as per documentation)
'canine'
我错过了什么吗?
【问题讨论】:
-
您已经为对象更改了它,为一个对象更改不会反映在所有对象中。对象是类的一个实例
-
这可能不是“重复”标记的最佳选择,但这个问题确实经常出现。
标签: python class variables scope shared