我有一个这样的代码:
class sampleClass(object):
def __init__(self):
super(sampleClass, self).__init__()
我的问题是为什么在__init__
函数下调用自己的super?
我知道super用于调用父类的__init__
函数,(如果我错了请告诉我)但这里它是干什么的呢?
我有一个这样的代码:
class sampleClass(object):
def __init__(self):
super(sampleClass, self).__init__()
我的问题是为什么在__init__
函数下调用自己的super?
我知道super用于调用父类的__init__
函数,(如果我错了请告诉我)但这里它是干什么的呢?
__init__
,这是super
的正确语法,其中第一个参数必须是类本身(super将调用其父类的__init__
)。super([type[, object-or-type]])
返回代理对象,将方法调用委托给类型的父类或同级类。[第一个参数]
这个链接包含有关Python 2和Python 3中类定义差异的更多信息。
基本上,如果您使用的是Python 3,您可以将类定义转换为以下内容。
class sampleClass():
def __init__(self):
...
sampleClass
的定义与问题中显示的内容不相同。当使用多重继承时,它的行为会有所不同,无法调用其超类。 - MisterMiyagisampleClass
继承了 object
。jsbueno 在这里 链接 解释了 object 是什么。因此,在问题中没有需要继承的超类,就像您提到的那样。 - Bahad