Почему выражения могут передаваться через несколько строк в вызовах функций, но не в присваиваниях? - PullRequest
0 голосов
/ 16 января 2019

Я только что понял, что можно растянуть оператор на несколько строк, когда он передается в качестве параметра в функцию:

print(1 == 
  1)

Однако, делая то же самое во время присваивания переменной, вы получите SyntaxError:

x = 1 ==
  1

Почему первый пример работает, а второй дает SyntaxError?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Еще один способ сделать это с помощью символа продолжения (\), как в ...

x = 1 == \
  1
0 голосов
/ 16 января 2019

Python распознает открытые скобки, скобки и скобки как указание на то, что оператор не завершен. Таким образом, вызову функции «естественно» разрешено занимать строки.

Это соглашение синтаксического анализатора не применяется к выражениям, в которых есть , а не необходимая сбалансированная пунктуация.

Обратите внимание, что строки также не могут пересекать границы строк.

...