【发布时间】:2014-07-22 15:31:04
【问题描述】:
我有一个包含类属性的类。我需要它们被一组其他类作为类属性共享,这样如果它们中的任何一个修改了这些属性,它们都会被修改。我天真地尝试使用继承,但它不是那样工作的:每个类的行为都好像它有自己的这些类属性的“副本”。
文件:
# baseClass.py
class BaseClass(object):
iden = 0
# child1.py
from baseClass import BaseClass
class Child1(BaseClass):
@classmethod
def getId(cls):
return cls.iden
# child2.py
from baseClass import BaseClass
class Child2(BaseClass):
@classmethod
def getId(cls):
return cls.iden
我用来测试的文件是:
from child1 import Child1
from child2 import Child2
print(Child1.getId())
Child1.iden = 5
print(Child1.getId())
print(Child2.getId())
我看到的输出:
0
5
0
我应该怎么做,让 Child1、Child2 和 BaseClass 共享 iden 类属性?
【问题讨论】: