这是因为用逗号分隔的表达式是在整个逗号分隔的元组(这是Python语法术语中的“表达式列表”)之前进行求值的。因此,当您这样做时
foo_bar_tuple=="foo","bar",将被解释为
(foo_bar_tuple=="foo"),"bar"。在文档中描述了此行为。
如果仅自己编写这样的表达式,则可以看到以下内容:
>>> 1, 2 == 1, 2 # interpreted as "1, (2==1), 2"(1, False, 2)
未带括号的元组的SyntaxError是因为未带括号的元组不是Python语法中的“原子”,这意味着它不是
if条件的唯一内容。(您可以通过跟踪语法来自己验证这一点。)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)