【问题标题】:How to call both parent class __init__ from base class? [duplicate]如何从基类调用父类 __init__? [复制]
【发布时间】:2017-12-26 16:23:19
【问题描述】:
class A(object):
    def __init__(self, id):
        print("in A")


class B(object):
    def __init__(self, id1, id2):
        print("In B")

class C(A,B):
    def __init__(self, id1, id2):
        super(C, self).__init__(id1)
        super(C,self).__init__(id1,id2)

我将 C 的对象称为 C(1,2)。

它抛出错误:

TypeError: __init__() takes exactly 2 arguments (3 given)

我可以知道如何从 C 的 __init__ 调用两个父类的 __init__ 吗?

【问题讨论】:

  • 我继续并将其标记为重复,因为如果那里的最佳答案对您没有帮助,那么链接的文章当然应该。请注意,回答的人是 Python 开发团队的主要贡献者,所以这是非常权威的 :)

标签: python oop multiple-inheritance init


【解决方案1】:

试试这个:

class C(A, B):
    def __init__(self, id1, id2):
        A.__init__(self, id1)
        B.__init__(self, id1, id2)

【讨论】:

  • 这不起作用。
  • 抱歉,快速回答错误。
猜你喜欢
  • 2013-10-12
  • 2017-12-13
  • 2017-08-26
  • 2010-11-26
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
  • 1970-01-01
  • 2015-07-15
相关资源
最近更新 更多