2017-01-30 22 views
0

スーパーでは initメソッドを呼び出すために使用されていることを知っている、私はそれが重要なことを知っているkwargs引数これはpython super().__ init __(** kwargs)

ここでは何ですか?

class LoginScreen(GridLayout): 

    def __init__(self, **kwargs): 
     super().__init__(**kwargs) 
     self.cols = 2 
     self.add_widget(Label(text = "Username: ")) 
     self.username = TextInput(multiline = False) 
     self.add_widget(self.username) 

     self.add_widget(Label(text="Password: ")) 
     self.username = TextInput(multiline=False, password=True) 
     self.add_widget(self.username) 

     self.add_widget(Label(text="Two Factor Auth: ")) 
     self.tffa = TextInput(multiline=False, password=True) 
     self.add_widget(self.tffa) 
+1

[\ * \ *(二重星)と\ *(星)はパラメータと何が一致しますか?](http://stackoverflow.com/questions/36901/what-does-double-star-and -star-do-for-parameters) – DyZ

答えて

3

def __init__(self, **kwargs):パックdict__init__に任意の呼び出しで使用されたキーワードのすべての引数とsuper().__init__(**kwargs)再びキーワード引数にそれらを展開します。関数のパラメータのようなワイルドカードです。これは、サブクラスに、親と同じパラメータシグネチャを与えるために、すべての可能なキーワードパラメータを再度入力することを怠ることなく怠惰にすることができます。ちょうどブロブとしてそれらをつかみ、把握するために親にそれらをシャベル。

関連する問題