Как EXPRESSION_STMT работает в грамматике Python? - PullRequest
1 голос
/ 08 июля 2019

Я действительно изо всех сил пытаюсь понять, как EXPRESSION_STMT видится в Python (см. Здесь, чтобы перейти к грамматике Python и к правильной строке https://github.com/python/cpython/blob/v3.6.4/Grammar/Grammar#L41).

Что это представляет в Python? Если у вас естьпример, который действительно помог бы мне:)

PS: мне сказали, что анализатор, использующий эту грамматику, распознает функцию печати через EXPRESSION_STMT, но я не понимаю, почему

1 Ответ

2 голосов
/ 08 июля 2019

Есть два типа кода, есть операторы и выражения. В общем случае операторы ничего не возвращают, а выражения.

Заявления - это такие вещи, как if, for, while и т. Д., Которые ничего не возвращают после завершения

Выражения могут быть такими, как 3, True, 1 + 7, "a" * 3, потому что они возвращают значения при выполнении

В Python вполне допустимо иметь строку кода, которая выглядит просто как

1 + 2

это выполнится и вернет 3. Это будет проблемой для python, потому что тогда в стеке останется 3. Таким образом, оператор выражения - это просто оболочка для выражения, которая позволяет вам писать выражения в виде отдельной строки кода. Все это означает, что в отличие от простого выражения, выражение выражение выскакивает свое возвращаемое значение из стека, когда оно завершено

Надеюсь, это имеет смысл, если не просто оставить мне комментарий

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...