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 但表达式会。
语句是诸如 if
、for
、while
等在完成后不会 return 任何东西的东西
表达式可以是 3
、True
、1 + 7
、"a" * 3
,因为它们 return 在执行时的值
在python中有一行代码是完全有效的,就像
1 + 2
这将执行,并且 return 3。这对 python 来说是个问题,因为那时堆栈上会剩下一个 3。所以表达式语句基本上只是表达式的包装器,它允许您将表达式编写为一行代码。所有这一切意味着,与普通表达式不同,表达式语句在完成时将其 return 值从堆栈中弹出
希望这是有道理的,如果没有请给我留言
我真的很难理解 EXPRESSION_STMT
在 Python 中的含义(请参阅此处转到 Python 的语法和正确的行 https://github.com/python/cpython/blob/v3.6.4/Grammar/Grammar#L41 ).
它在Python中代表什么? 如果你有一个真正对我有帮助的例子:)
PS:有人告诉我使用这种语法的分析器会通过 EXPRESSION_STMT
识别打印函数,但我不明白为什么
有两种类型的代码,一种是语句,一种是表达式。一般来说,语句不会 return 但表达式会。
语句是诸如 if
、for
、while
等在完成后不会 return 任何东西的东西
表达式可以是 3
、True
、1 + 7
、"a" * 3
,因为它们 return 在执行时的值
在python中有一行代码是完全有效的,就像
1 + 2
这将执行,并且 return 3。这对 python 来说是个问题,因为那时堆栈上会剩下一个 3。所以表达式语句基本上只是表达式的包装器,它允许您将表达式编写为一行代码。所有这一切意味着,与普通表达式不同,表达式语句在完成时将其 return 值从堆栈中弹出
希望这是有道理的,如果没有请给我留言