次のコードの 5 行目で、何をしFrame.__init__
ますか? 誰かがその背後にある概念を説明できますか? どうもありがとう!
from Tkinter import *
class AppUI(Frame):
def __init__(self, master=None):
Frame.__init__(self, master, relief=SUNKEN, bd=2)
[...]
次のコードの 5 行目で、何をしFrame.__init__
ますか? 誰かがその背後にある概念を説明できますか? どうもありがとう!
from Tkinter import *
class AppUI(Frame):
def __init__(self, master=None):
Frame.__init__(self, master, relief=SUNKEN, bd=2)
[...]
クラスは のクラスにAppUI
基づいています。これは、クラスが のタイプであるが、一部の動作がわずかに異なるかカスタマイズされていることを意味します。これは、クラスのメソッドがクラスからコードを呼び出す必要がある場合があることを意味します (実際、通常は必要になります) 。つまり、クラスと同じことをしたいのですが、それ以外のこともしたいのです。それがここで起こっていることです: をインスタンス化するとき、それを最初に初期化してから、固有の初期化を実行します。Frame
Tkinter
AppUI
Frame
AppUI
Frame
AppUI
Frame
AppUI
Frame
AppUI
ここでAppUI
は、親クラスの__init__()
メソッドを明示的に呼び出します。
関数を使用してこれを行うこともできsuper()
ます。通常はそうします。基本的に、多重継承のシナリオでは必須です。しかし、Tkinter は「古いスタイルのクラス」を使用するため、ここでは古い方法で行う必要があります。