繁体   English   中英

object.__init__() 不带参数

[英]object.__init__() takes no parameters

import abc

class AbsBaseClass(abc.ABC):
    def __init__(self,x):
        self.x=x

class DerivedClass(AbsBaseClass):
    def __init__(self,y):
        super(AbsBaseClass,self).__init__(y)


ob=DerivedClass(5)

错误在这里:

class DerivedClass(AbsBaseClass):
    def __init__(self,y):
        super(AbsBaseClass,self).__init__(y)
 #            ^^^^^^^^^^^^ This should be DerivedClass, not AbsBaseClasee

另外,对于@NPE 的回答。

  • 你正在做一个作为 super 的类,它是元类,所以如果你想要那个,为什么不有一个空的super

  • 真的是这样:-)...

所以代码变成:

import abc

class AbsBaseClass(abc.ABC):
    def __init__(self,x):
        self.x=x

class DerivedClass(AbsBaseClass):
    def __init__(self,y):
        super(DerivedClass,self).__init__(y) #!!!


ob=DerivedClass(5)

所以而不是:

super(AbsBaseClass,self).__init__(y)

做:

super(DerivedClass,self).__init__(y)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM