【发布时间】:2017-09-08 15:07:52
【问题描述】:
我有以下问题
class A:
def __init__(self):
self.window = "<I am window class>"
class B(A):
def __init__(self):
super().__init__()
def createObject(self):
print(self.window) # it works here
self.c = C()
def drawRect(self):
print(self.window) # does not work when called from class C
class C(B):
def __init__(self):
self.draw()
def draw(self):
super().drawRect()
app = B()
app.createObject()
我已经想到,当我在 C 类中调用 super().drawRect() 函数时
它将<__main__.C object at 0x0000023D99FA6748> 作为自我发送。
如何让 C 类在函数 draw() 中发送 <__main__.B object at 0x0000017A2BA95358> 中的 super().drawRect()
我之所以问是因为在非简化代码中,当我从 B 类本身调用函数时,它会打印 self.window,但是当从 C 类调用时,它会打印 None
如何解决这个问题? 我做错了什么?
【问题讨论】:
标签: python class inheritance super self