Python 类继承自身?关于继承和super()方法的问题
我有一个关于Python中的类、子类和继承的问题 我已经使用Tkinter进行GUI开发一段时间了,并决定学习如何使用Kivy。在Kivy文档中,我遇到了一行对我来说毫无意义的代码。如下所示(注意,Python 类继承自身?关于继承和super()方法的问题,python,class,oop,tkinter,kivy,Python,Class,Oop,Tkinter,Kivy,我有一个关于Python中的类、子类和继承的问题 我已经使用Tkinter进行GUI开发一段时间了,并决定学习如何使用Kivy。在Kivy文档中,我遇到了一行对我来说毫无意义的代码。如下所示(注意,GridLayout是从kivy模块导入的I类): 调用LoginScreen和self而不是GridLayout的super真让我困惑!类是否继承自身?发生了什么事 在Tkinter中,我将编写如下内容(再次注意,tk.Frame是从Tkinter模块导入的类): 当我输入这两个示例时,我注意到我没
GridLayout
是从kivy模块导入的I类):
调用LoginScreen和self而不是GridLayout的super
真让我困惑!类是否继承自身?发生了什么事
在Tkinter中,我将编写如下内容(再次注意,tk.Frame
是从Tkinter模块导入的类):
当我输入这两个示例时,我注意到我没有将任何内容传递到super()
。super方法的默认参数是类和self的名称吗?i、 以上是不是类似于写作
class LoginScreen(tk.Frame):
def __init__(self, parent):
super(LoginScreen, self).__init__(parent)
如果它们不同,你能解释它们不同的原因吗?但是如果它们相同,你能更深入地解释一下
super()
是如何做的(不仅仅是继承父类的方法和属性)?是,这些是super
的默认参数,您可以在以下示例中看到:
C类(B类):
def方法(self,arg):
super().method(arg)#这与:
#super(C,self).方法(arg)
(注释不是我的,在原始示例中是这样的)
class LoginScreen(tk.Frame)
def __init__(self, parent):
super().__init__(parent)
class LoginScreen(tk.Frame):
def __init__(self, parent):
super(LoginScreen, self).__init__(parent)