EXPRESSION_STMT 在 Python 语法中是如何工作的?

How does EXPRESSION_STMT work in Python grammar?

我真的很难理解 EXPRESSION_STMT 在 Python 中的含义(请参阅此处转到 Python 的语法和正确的行 https://github.com/python/cpython/blob/v3.6.4/Grammar/Grammar#L41 ).

它在Python中代表什么? 如果你有一个真正对我有帮助的例子:)

PS:有人告诉我使用这种语法的分析器会通过 EXPRESSION_STMT 识别打印函数,但我不明白为什么

有两种类型的代码,一种是语句,一种是表达式。一般来说,语句不会 return 但表达式会。

语句是诸如 ifforwhile 等在完成后不会 return 任何东西的东西

表达式可以是 3True1 + 7"a" * 3,因为它们 return 在执行时的值

在python中有一行代码是完全有效的,就像

1 + 2

这将执行,并且 return 3。这对 python 来说是个问题,因为那时堆栈上会剩下一个 3。所以表达式语句基本上只是表达式的包装器,它允许您将表达式编写为一行代码。所有这一切意味着,与普通表达式不同,表达式语句在完成时将其 return 值从堆栈中弹出

希望这是有道理的,如果没有请给我留言