以下更多示例:
if (a = xyz() ) > abc:
真的想知道为什么,难道是难闻的种类?
注意:我知道语法,但我问为什么Python不支持这样的语法,因为许多其他语言(例如,c,java ...)支持
答案 0 :(得分:4)
不允许在Python表达式中赋值的原因是由这种结构引起的其他语言中常见的,难以发现的错误:
if (x = 0) { // error handling } else { // code that only works for nonzero x }
错误是一个简单的拼写错误:x = 0,它将0赋给变量x,而比较x == 0肯定是预期的。
正如FAQ中所解释的那样,使用迭代器可以覆盖在表达式中使用赋值的大多数“用例”。
答案 1 :(得分:0)
记住python哲学:应该有一个 - 最好只有一个 - 明显的方法来做到这一点
这对我来说听起来不太明显!
您也可以查看此答案:
why does python assignment not return a value