我有以下 code.py 文件:
class Shape:
def __init__(self, x, y):
self.x = x
self.y = y
def move(self, delta_x, delta_y):
self.x += delta_x
self.y += delta_y
class Square(Shape):
def __init__(self, side=1, x=0, y=0):
super().__init__(x, y)
self.side = side
class Circle(Shape):
def __init__(self, rad=1, x=0, y=0):
super().__init__(x, y)
self.radius = rad
我在 Python 解释器中运行代码,如下所示:
>>> import code
>>> c = code.Circle(1)
我收到此错误:
Traceback (most recent call last):<br>
...<br>
File "code.py", line 18, in __init__<br>
super().__init__(x, y)<br>
TypeError: super() takes at least 1 argument (0 given)<br>
我不明白为什么我会收到这个错误。我指定了 1 的 rad 值,我假设由于我没有指定 x 和 y 值,Circle 应该使用 x=0 和 y=0 的默认值,并通过 super() 将它们传递给 Shape功能。我错过了什么?
顺便说一句,我使用的是 Python 2.7.1。
谢谢。