标签: python expression
我知道赋值是Python中的一个语句,即它不会像表达式那样求值。那么下面的代码行如何在Python中运行呢?请解释Python解释器内部发生的事情(lexing,解析,抽象语法树的形成)。
# this works spam = eggs = 'ham' # this doesn't work. Throws SyntaxError spam = (eggs = 'ham')
答案 0 :(得分:10)
为什么上面的第一行有效而第二行没有?
这与操作员优先级无关。这是一个指定的语法。它不能通过添加括号来“协调”。
现在获得完整的答案(正如@ Rob的评论已经表明的那样),请参阅here和here。