这在python super()中有什么作用?__ init __(** kwargs)

Mos*_*eed 3 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)
Run Code Online (Sandbox Code Playgroud)

tde*_*ney 6

def __init__(self, **kwargs):将在任何给定调用中使用的所有关键字参数打包__init__到a中dictsuper().__init__(**kwargs)然后再次将其扩展为关键字参数。它就像函数参数的通配符。为子类提供与父类相同的参数签名而不用再次键入所有可能的关键字参数是一种懒惰的方法。只需抓住它们,然后将它们铲给父母,以弄清楚。