объект .__ init __ () не принимает параметров - PullRequest
0 голосов
/ 26 октября 2018
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)

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Дополнительно к ответу @ 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)

Do:

super(DerivedClass,self).__init__(y)
0 голосов
/ 26 октября 2018

Ошибка здесь:

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