python如何处理这个继承问题?

时间:2019-02-14 15:03:44

标签: python class inheritance

class A:
    def __init__(self):
        print('I am A')


class B(A):
    def b(self):
        print('I am B.b')


class C(A):
    def c(self):
        x.b()


if __name__ == '__main__':
    x = B()
    y = C()
    y.c()

当涉及y.c()时,它如何工作? 在C.c()中,如何在不实例化的情况下调用实例x? 非常感谢,如果有人可以提供帮助。

1 个答案:

答案 0 :(得分:2)

不能。以您的情况为例,当您调用x.b()时,有一个全局变量恰好被命名为x,类型为B。它已在上一行使用x = B()进行了初始化

此代码取决于外部变量,通常会失败。如果要调用对象自己的方法,请改用self.b()