expr* 和 expr 之间有什么区别?和 expr in Python3.6 AST 抽象语法?
What's difference between expr*, expr? and expr in Python3.6 AST Abstract Grammar?
在Python3.6 AST Abstract Grammar中,里面有expr*
、expr?
和expr
。它们之间有什么区别?如:expr* targets
、expr? value
和expr target
.
这些后缀通常与正则表达式中的含义相同:
expr
- 恰好是表达式 的一个实例
expr?
- 零个或一个实例
expr*
- 零个或多个实例
例如,对于以下内容:
FunctionDef(identifier name, arguments args,
stmt* body, expr* decorator_list, expr? returns)
一个函数定义仅包含一个名称、至少零个语句和一个可选的 return 值(对于不 return 任何东西的函数)。
在Python3.6 AST Abstract Grammar中,里面有expr*
、expr?
和expr
。它们之间有什么区别?如:expr* targets
、expr? value
和expr target
.
这些后缀通常与正则表达式中的含义相同:
expr
- 恰好是表达式 的一个实例
expr?
- 零个或一个实例expr*
- 零个或多个实例
例如,对于以下内容:
FunctionDef(identifier name, arguments args,
stmt* body, expr* decorator_list, expr? returns)
一个函数定义仅包含一个名称、至少零个语句和一个可选的 return 值(对于不 return 任何东西的函数)。