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

Pik*_*les -3 python expression indentation parameter-passing variable-assignment

我刚刚意识到,当它作为参数传递给函数时,可以跨多行拉伸语句:

print(1 == 
  1)
Run Code Online (Sandbox Code Playgroud)

但是,在变量赋值期间执行相同的操作会引发SyntaxError:

x = 1 ==
  1
Run Code Online (Sandbox Code Playgroud)

为什么第一个例子有效但第二个例子产生了SyntaxError

Pru*_*une 6

Python识别开括号,大括号和括号,表示该语句未完成.因此,允许函数调用"自然地"跨越行.

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

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