Python:单行中的多个赋值如何工作?

时间:2013-11-20 05:46:27

标签: python expression

我知道赋值是Python中的一个语句,即它不会像表达式那样求值。那么下面的代码行如何在Python中运行呢?请解释Python解释器内部发生的事情(lexing,解析,抽象语法树的形成)。

# this works
spam = eggs = 'ham'

# this doesn't work. Throws SyntaxError
spam = (eggs = 'ham')

1 个答案:

答案 0 :(得分:10)

  

为什么上面的第一行有效而第二行没有?

这与操作员优先级无关。这是一个指定的语法。它不能通过添加括号来“协调”。

现在获得完整的答案(正如@ Rob的评论已经表明的那样),请参阅herehere