在下面的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"
Run Code Online (Sandbox Code Playgroud)