小编Pre*_*and的帖子

使用super时出错:__ init __()只需1个参数

任何人都可以解释为什么我得到__init__()正好1参数错误与下面的代码

class ABC(object):
    def __init__(self, **kwargs):
        self.x=20
        super(ABC, self).__init__(self, **kwargs)

class DEF(object):
     def __init__(self, **kwargs):
        self.y=30
        super(DEF, self).__init__(self, **kwargs)

class XYZ(ABC,DEF):
     def __init__(self, **kwargs):
        super(XYZ, self).__init__(self, **kwargs)

>>> x=XYZ()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/user/test.py", line 13, in __init__
    super(XYZ, self).__init__(self, **kwargs)
TypeError: __init__() takes exactly 1 argument (2 given)

>>> x=XYZ(a=1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/hprem/junk", line 13, in __init__
    super(XYZ, self).__init__(self, …
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
1735
查看次数

标签 统计

python ×1