TypeError:__init __()最多接受3个参数(给定8个)

时间:2018-07-15 05:12:19

标签: python-3.x arguments parameter-passing super superclass

我是一名新学生,遇到了一个我不太了解的问题。我已经请我的老师解释一下,但是他坚持要求我首先寻求别人的建议。

我已经审查了类似的问题,但是我要么很忙,要么不知道如何将解决方案转换为我自己的代码。希望能为我解决问题并学习如何在将来预防该问题提供帮助。我收到的错误为:

TypeError:__init __()最多接受3个参数(给定8个参数)

class Fighter(ShowBase, object):
    fighterCount = 0
    def __init__(self, modelPath, parentNode, nodeName, posVec, traverser, scaleVec = 1.0):
        super(Fighter, self).__init__(modelPath, parentNode, nodeName, 0, 0, 0, 3.0)
        self.modelNode.setScale(scaleVec)
        self.modelNode.setPos(posVec)

        self.trav = traverser

        self.origin = render.attachNewNode("origin")
        self.origin.setPos(0, 0, 0)
        self.origin.hide()

        self.setKeyBindings()

        self.hud = Hud("./Tools/Hud.x", self.modelNode, "Hud", (0, 10, 0))

1 个答案:

答案 0 :(得分:0)

在类Fighter中,您调用super().__init__初始化实例,该实例将调用基类ShowBase.__init__。根据您的错误消息,我猜ShowBase.__init__只有三个参数,但是您给了八个参数。