将类传递给Python的超级()

时间:2018-04-20 15:00:13

标签: python oop

我有一个类(称之为ClassC),其中一个属性是另一个类(称之为ClassB)。 ClassB实际上需要来自ClassC的数据来初始化自己,所以我使用以下语法将ClassC传递给ClassB:

class ClassC(object):
  def __init__(self):
    self.val = 8
    self.derived_class = ClassB(self)

我看到一个错误,抱怨init()没有采取任何参数,但我只是没有看到问题可能来自何处。我没有以正确的方式使用super(),以便ClassB初始化它的基类ClassA吗?

  

Traceback(最近一次调用最后一次):File" python",第18行,in      文件" python",第15行,在 init 文件" python",行   9,在 init TypeError:object。 init ()不带参数

我已经复制了以下代码,您也可以run it here

class ClassA(object):
  def __init__(self, initial_class):
    self.val = None
    self.initial_class = initial_class

class ClassB(ClassA):
  def __init__(self, initial_class):
    super(ClassA, self).__init__(initial_class)
    self.val = 7

class ClassC(object):
  def __init__(self):
    self.val = 8
    self.derived_class = ClassB(self)

c = ClassC()

0 个答案:

没有答案