在Python中使用super()

时间:2017-02-18 12:25:49

标签: python class subclass superclass

我在Pycharm上使用Python 3.5。我试图定义2个类。第一个是超类,第二个是它的子类。代码如下:enter image description here enter image description here 并且出现问题: enter image description here。问题在于Game类中的p2(第二张图片)。

它说:此检查报告声明的参数和实际参数之间的差异,以及不正确的参数(例如重复的命名参数)和不正确的参数顺序。装饰师也被分析了。

那么这里的问题是什么?

2 个答案:

答案 0 :(得分:1)

值得越过python提供的异常跟踪 - 问题的一部分是你没有发布的代码。如果你看一下例外,你会看到:

b=Game(a)

这意味着您只将一个参数(a)传递给游戏的构造函数,它需要2个参数 - p1p2

此外,使用super()时,不应传递self参数。所以而不是:

super().__init__(self, p1, p2)

你应该写:

super().__init__(p1, p2)

答案 1 :(得分:0)

创建Game类的实例时,必须将两个变量传递给init:

game = Game(a, b)