今天注意到我们代码库中的一行,我认为肯定会因为语法错误而导致构建失败,但测试通过了,所以显然它实际上是有效的 python(在 2.x 和 3 中)。
条件表达式中有时不需要空格:
>>> 1if True else 0
1
如果 LHS 是一个变量,它就不起作用:
>>> x = 1
>>> xif True else 0
File "<stdin>", line 1
xif True else 0
^
SyntaxError: invalid syntax
但它似乎仍然适用于其他类型的文字:
>>> {'hello'}if False else 'potato'
'potato'
这里发生了什么,出于某种原因,它是否有意成为语法的一部分?这个奇怪的怪癖是已知的/记录在案的行为吗?