首先,请注意,我理解 ==
用于比较两个表达式,而 =
用于为变量赋值。然而,python 是一种语法要求极低的简洁语言,这似乎是一个很容易砍掉的运算符。此外,我并不是要开始辩论或讨论,而是要了解我是否缺少某些东西来提高我的编程知识。
就像(在 python 中)我们不需要将变量声明为 int 或字符串,并且语言根据分配的值确定这一点,为什么“if”语句不简单地确定 =
是比较,而不是作业?
又如python去掉了很多其他语言中的{}和[],直接使用缩进,因为缩进和使用大括号是多余的。在我看来 if foo == goo:
也是多余的。但也许有些事情我还没有意识到。因此问题!
最佳答案
一个很简单的原因是python允许 bool 表达式:
a = b == c
还有多重赋值:
a = b = c
在第一种情况下,根据b
和 c
是相等的。在第二种情况下,a
和 b
最终引用同一个对象 (c
)。显然,您无法仅通过一个运算符同时支持两者。
我想您可以(原则上)仅在 if
语句中重载 =
(因为那里不允许赋值),但这会让人感到困惑——尤其是对于来自 C
的人,其中 an assignment is allowed in an if
statement.禅宗又赢了(“明确胜于隐含”)。
- 实际上不必是 bool 值。它实际上是
a
的__eq__
方法(或者b
的__eq__
如果前者返回NotImplemented
) -- 大多数 对象返回一个 bool 值,但有一些不返回(numpy.ndarray
是一个常见的对象,它有一个__eq__
返回另一个ndarray
例如)。
关于python - 比较值与 '==' 时, '=' 运算符的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15777992/