为什么这个python代码会导致等号的语法错误?我该怎么办呢?
start_pos = [0, 0]
direction = [1, 1]
end_pos = [start_pos[0] += direction[0],
start_pos[1] += direction[1]]
我原本希望这可以实例化end_pos
并将start_pos
增加direction
,就像在Ruby中一样。
答案 0 :(得分:1)
正如@PM 2Ring所说,赋值不会在Python中返回值。
列表是可变的。因此,您可以定义返回结果的附加分配。
例如:
>>> def add_assignment(a, b):
... a[0] += b[0]
... a[1] += b[1]
... return a
...
>>> start_pos = [0, 0]
>>> direction = [1, 1]
>>> end_pos = add_assignment(start_pos, direction)
>>> print start_pos, end_pos
[1, 1] [1, 1]