我想知道在Python中是否有一种方法可以访问该方法所属的对象的类。例如:
class A:
def __init__(self):
self.b = B()
def foo(self):
print('A')
class B:
def bar(self):
<something here>.foo()
a = A()
a.b.bar()
基本上我希望B&B的方法栏能够调用A的方法foo。如果b是某个其他类C的属性,则调用C&C的foo版本。
答案 0 :(得分:1)
您可以添加对实例化B的类的引用:
class A:
def __init__(self):
# pass self while instantiating B
self.b = B(self)
def foo(self):
print('A')
class B:
def __init__(self, rel_obj):
self.rel_obj = rel_obj
def bar(self):
self.rel_obj.foo() # access foo() using self.rel_obj
同样,您可以传递C类对象来调用C foo
方法的版本。