在下面的代码中,当我尝试使用__init__
方法发送列表时,它会给出
Line 13: ValueError: expecting Array or iterable
class Ball:
def __init__(self, c, r):
self.center = c
self.radius = r
def move(self, move_vector):
"""Changes the position of the ball by the given vector."""
self.center[0] += move_vector[0]
self.center[1] += move_vector[1]
#This line gives error
balls = Ball(list(1,1),1);
balls.move((2,3))
print balls
但是当我把它改成跟随它起作用时,
class Ball:
def __init__(self, c, r):
#Changed from c to list(c)
self.center = list(c)
self.radius = r
def move(self, move_vector):
"""Changes the position of the ball by the given vector."""
self.center[0] += move_vector[0]
self.center[1] += move_vector[1]
#Changed
balls = Ball((1,1),1);
balls.move((2,3))
print balls
我正在学习这门语言,请告诉我为什么会这样?
答案 0 :(得分:1)
List在行中包含一个参数:
balls = Ball(list(1,1),1)
您提供带有两个参数的列表(1,1)。
H个。