给定任意对象:帮助与Python继承
class Val(object):
def __init__(self):
this_val = 123
我想创建具有是属性的抽象基类Val()
:
class A(object):
foo = Val()
我希望,当我的孩子继承该类,他们将获得Val()
的副本。例如:
class B(A):
pass
class C(A):
pass
我希望以下行为:
>>> b = B()
>>> c = C()
>>> c.foo.this_val = 456
>>> b.foo.this_val
123
而是我得到:
>>> b.this_val
456
我明白,我可能只是self.foo = Val()
到INIT实现该行为,但我有一个要求,即foo仍然是一个属性(它是在Django的模型管理器)。任何人都可以为此提出解决方法吗?
编辑:我真正需要的是能够访问该值作为一个类的属性,所以我期望的行为是:
>>> C.foo.this_val = 456
>>> B.foo.this_val
123
我需要引用它的属性,虽然。我想做'C.foo.this_val'和'B.foo.this_val'并得到不同的结果。对不起,如果不明确。我没有实例:( – Bacon 2011-05-23 06:43:40
然后在个别类定义中覆盖它呢? – Amber 2011-05-23 06:47:47
我真的很希望不要这样做。必须有一些模糊的python私有方法,我可以重写以达到这个目的? – Bacon 2011-05-23 06:50:15