我真的不明白为什么需要为命名表达式引入专用语法(:=
运算符),如 PEP572 所述。 .例如。一个应该写:
if (match := pattern.search(data)) is not None:
# Do something with match
为什么不简单地if (match = pattern.search(data))
?如果是因为向后兼容,那么注意下面的表达式:(x = 1)
引发 SyntaxError: invalid syntax
,因此允许它并开始将其解释为命名表达式就足够了,而不是引入新的 :=
运算符,顺便说一句,在大多数情况下,无论如何它都会被括号包围。我觉得我没有看到其他人都得到的明显的东西;-)
最佳答案
因为explicit is better than implicit , 和 :=
明确你执行任务的意图;而使用 =
很容易是拼写错误的结果,这就是 =
的原因故意在 Python 中的表达式中不起作用。
其实不小心用了=
而不是 ==
比较内部是支持它的语言中常见的错误来源。
关于python - 为什么 Python 中的命名表达式需要专用语法(:=, 海象运算符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63807658/