代码之家  ›  专栏  ›  技术社区  ›  Picachieu

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

  •  -2
  • Picachieu  · 技术社区  · 7 年前

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

    print(1 == 
      1)
    

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

    x = 1 ==
      1
    

    为什么第一个例子有效,但第二个例子产生了 语法错误 ?

    2 回复  |  直到 7 年前
        1
  •  6
  •   Prune    7 年前

    python识别开括号、大括号和圆括号,表示语句尚未完成。因此,允许函数调用“naturally”跨越行。

    此分析器约定不适用于存在 不 所需的平衡环绕标点。

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

        2
  •  0
  •   Ben    7 年前

    另一种方法是使用延续字符(\)如…

    x = 1 == \
      1