1

更多示例如下:

 if (a = xyz() ) > abc: 

真的很想知道为什么,是不是有种难闻的气味?

注意:我知道语法,但我在问为什么 Python 不支持许多其他语言(例如 c 、 java ...)支持的语法

4

2 回答 2

4

来自python 设计常见问题解答

不允许在 Python 表达式中赋值的原因是其他语言中常见的、难以发现的错误,由以下结构引起:

    if (x = 0) {
        // error handling
    }
    else {
        // code that only works for nonzero x
    }

错误是一个简单的错字:x = 0,将 0 分配给变量 x,是写的,而比较 x == 0 肯定是预期的。

如常见问题解答中所述,在表达式中使用赋值的大多数“用例”都可以通过使用迭代器来覆盖。

于 2012-07-13T07:56:54.213 回答
0

记住 python 哲学:应该有一种——最好只有一种——明显的方法。
这对我来说听起来并不明显!
此外,您可能也想检查这个答案:
Why does python assignment not return a value

于 2012-07-13T08:03:02.873 回答