从属于对象的方法中调用对象的访问类

时间:2018-02-19 06:09:03

标签: python

我想知道在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版本。

1 个答案:

答案 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方法的版本。