Python对象层次结构;引用所有者实例?

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 中是否有针对此行为的功能?

是的,我知道我可以将引用传递给构造函数,但我正在寻找更优雅的解决方案。

geo*_*org 2

第二个想法是,您正在寻找的内容与描述符非常相似。考虑:

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被附加到两个不同的实例,并且每次“知道”哪个实例想要与他交谈。