Zv_*_*oDD 5 python oop class object relationship
是否没有神奇的Python方法来访问类的实例,该类的实例内部引用了当前的self?IE:
class A(object):
def __init__(self):
self.B = B()
def say_hi(self):
print "Hi"
class B(object)
def __init__(self):
__get_owner_ref__.say_hi()
A()
Run Code Online (Sandbox Code Playgroud)
get_owner_ref是不存在的灵丹妙药。python 中是否有针对此行为的功能?
是的,我知道我可以将引用传递给构造函数,但我正在寻找更优雅的解决方案。
第二个想法是,您正在寻找的内容与描述符非常相似。考虑:
class Agent(object):
def __get__(self, obj, objtype):
print 'Agent %s called from %s ' % (id(self), obj.name)
class X(object):
agent = Agent()
def __init__(self, name):
self.name = name
a = X('Foo')
a.agent
b = X('Bar')
b.agent
Run Code Online (Sandbox Code Playgroud)
这里agent被附加到两个不同的实例,并且每次“知道”哪个实例想要与他交谈。