没有魔术发生!
__init__方法与其他方法一样工作。您需要在子类初始化程序中显式地获取所需的所有参数,并将它们传递给超类。
class Superclass(object): def __init__(self, arg1, arg2, arg3): #Initialise some variables #Call some methodsclass Subclass(Superclass): def __init__(self, subclass_arg1, *args, **kwargs): super(Subclass, self).__init__(*args, **kwargs) #Call a subclass only method
当您调用
Subclass(arg1, arg2, arg3)Python时,只会调用
Subclass.__init__(<the instance>,arg1, arg2, arg3)。它不会神奇地尝试将某些参数与超类和某些参数与子类进行匹配。



