2017-01-30 223 views
0

我知道super用於在超類中調用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 - 星級-DO換參數) – DyZ

回答

3

def __init__(self, **kwargs):包所有的在任何給定的調用__init__使用到dictsuper().__init__(**kwargs)他們又擴展到關鍵字參數關鍵字參數。它就像函數參數的通配符。可以通過一種懶惰的方式爲子類提供與父類相同的參數簽名,而不必再次輸入所有可能的關鍵字參數。只要將它們抓成一團,然後將它們鏟到父母身上就可以了。

相關問題