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? 非常感谢,如果有人可以提供帮助。
答案 0 :(得分:2)
不能。以您的情况为例,当您调用x.b()
时,有一个全局变量恰好被命名为x
,类型为B
。它已在上一行使用x = B()
进行了初始化 。
此代码取决于外部变量,通常会失败。如果要调用对象自己的方法,请改用self.b()
。