调用父__init __()

时间:2014-12-18 02:52:26

标签: python class super

我使用的是Python 2.6.6。

我已将我的错误代码缩小到这两个类:

class Graph(object):
  def __init__(self, name):
    self.name = name
    self.testme = 3

class StepPlot(Graph):
  def __init__(self, name):
    print("fdasfdsf")
    print(dir(super(Graph, self)))
    super(Graph, self).__init__(name)

不幸的是,当我使用StepPlot实例化StepPlot('fdsfa')时,我收到了错误

TypeError: object.__init__() takes no parameters

它不应该能够采用一个参数吗?

看着

When to call Python's super().__init__()?

这个班级组织应该有效。

我是否从根本上遗漏了一些东西?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

super的第一个参数应该是调用它的类:

super(StepPlot, self).__init__(name)

有关详细信息,请参阅documentation

的链接