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