为什么表达式可以在函数调用中跨行进行而不是赋值?
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
我刚刚意识到,在将语句作为参数传递给函数时,可以将语句扩展到多行:
print(1 ==
1)
然而,在变量赋值期间做同样的事情会引发 SyntaxError
:
x = 1 ==
1
为什么第一个示例有效,而第二个示例产生 SyntaxError
?
Python 将左方括号、大括号和圆括号识别为表示语句未完成。因此,函数调用 "naturally" 允许跨行。
此解析器约定不适用于没有必需的平衡封闭标点符号的表达式。
请注意,字符串也不能跨越线边界。
另一种方法是使用连续字符 (\),如...
x = 1 == \
1