class A()
att = B()
class B()
...
a = A()
b = B()
a.att = b
如何获得参考?我需要在这里获得一个属性。
谢谢!
答案 0 :(得分:0)
最简单的方法是在B中需要A的方法中添加一个额外的函数参数,并在调用时传递它。或者,只需让B的 init 取A作为参数,然后将A的init中的位更改为att = B(self)
答案 1 :(得分:0)
class A(object):
def __init__(self):
self.att = B(self)
class B(object):
def __init__(self, a):
self.a = a
a = A()
a.att.a is a
或者换句话说,
class A(object):
def __init__(self, b):
b.a = self
self.att = b
class B(object):
pass
a = A(B())
a.att.a is a
答案 2 :(得分:0)
这段代码没有多大意义......但如果我正确理解你的问题......
class A(object):
pass #or whatever you like
class B(object):
def __init__(self, ref): #accept one argument
self.ref = ref
a = A()
b = B(a) #pass `a` as that argument
a.att = b
可能是一个答案。
答案 3 :(得分:0)
class A(object):
def __init__(self):
self._att=None
@property
def att(self):
return self._att
@att.setter
def att(self, value):
self._att = value
value.parent = self
class B(object):
pass
a = A()
b = B()
a.att = b
print b.parent
答案 4 :(得分:0)