我有一个关于对象属性的python问题。代码:
>>> class A(object):
... dict = {}
... def stuff(self, name):
... self.dict[name] = 'toto'
...
>>> a = A()
>>> print a.dict
{}
>>> a.stuff('un')
>>> print a.dict
{'un': 'toto'}
>>> b = A()
>>> print b.dict
{'un': 'toto'}
我是一个PHP开发人员,在PHP中rint b.dict
将是{}
。为什么python在a
和b
之间共享这个属性?定义类属性的方法是什么?在新实例化时谁将是新的?你知道吗
您创建了一个类属性,而不是实例属性。字典是可变的,您可以从实例或直接在类上更改它,但根据定义,类属性在所有实例之间是共享的。你知道吗
改为在
__init__
方法中创建一个新的空字典:相关问题 更多 >
编程相关推荐