为什么表达式可以在函数调用中跨行进行而不是赋值?

Why can expressions be carried across multiple lines in function calls but not assignments?

我刚刚意识到,在将语句作为参数传递给函数时,可以将语句扩展到多行:

print(1 == 
  1)

然而,在变量赋值期间做同样的事情会引发 SyntaxError:

x = 1 ==
  1

为什么第一个示例有效,而第二个示例产生 SyntaxError

Python 将左方括号、大括号和圆括号识别为表示语句未完成。因此,函数调用 "naturally" 允许跨行。

此解析器约定不适用于没有必需的平衡封闭标点符号的表达式。

请注意,字符串也不能跨越线边界。

另一种方法是使用连续字符 (\),如...

x = 1 == \
  1