Python返回语法错误

时间:2015-09-03 19:18:48

标签: python

def list_function(x):
    return x[1] += 3

我想这样做,但显然我做不到。我知道我可以做到这一点

x[1] += 3
return x

但是,我想把它保持在一条线上。返回总是需要在自己的行上,如果没有,为什么需要在这种特殊情况下呢?

2 个答案:

答案 0 :(得分:2)

你可以在return语句后面有一个任意的表达式,即产生一个返回值的东西。赋值,包括x[1] += 3等增强赋值,是Python中的注释表达式。它们是陈述,因此不会产生价值,因此无法在return之后使用它们。

如果你坚持让一切都在一条线上,你当然可以写

x[1] += 3; return x

但是,我无法找到任何有效理由。

答案 1 :(得分:1)

来自documentation -

  

return_stmt :: =“return”[expression_list]

return语句后面只能跟表达式。 expression_list是 -

  

expression_list :: = expression(“,”expression)* [“,”]

但是x[1] += 1augmented assignment statement,因此在return之后你无法拥有它。