在下面的 B 类中,我希望__set__
每当您将值分配给时调用 A 类中的函数B().a
。相反,将值设置为用该值B().a
覆盖B().a
。分配给的 C 类C().a
可以正常工作,但我想为每个用户类创建一个单独的 A 实例,即我不想在 C() 的一个实例中更改“a”来更改所有其他实例中的“a”。我写了几个测试来帮助说明这个问题。你能帮我定义一个同时通过 test1 和 test2 的类吗?
class A(object):
def __set__(self, instance, value):
print "__set__ called: ", value
class B(object):
def __init__(self):
self.a = A()
class C(object):
a = A()
def test1( class_in ):
o = class_in()
o.a = "test"
if isinstance(o.a, A):
print "pass"
else:
print "fail"
def test2( class_in ):
o1, o2 = class_in(), class_in()
if o1.a is o2.a:
print "fail"
else:
print "pass"