を継承し、私は次のような問題Pythonのクラスのコールスーパーのメソッドの代わりに、
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>
を送ること考え出しています。
どのように私は(関数drawで、クラスCを作ることができるが)私はBクラス自体からの関数を呼び出す際に非簡略化されたコードでは、それは自己を表示しますので、私は求めていますsuper().drawRect()
で<__main__.B object at 0x0000017A2BA95358>
を送信します.windowですが、Cクラスから呼び出されたときには何も出力されません。
どのように修正できますか? 私は何が間違っていますか?あなたがC
のインスタンスを作成するときに