token
--- 用于 Python 解析树的常量¶
源码: Lib/token.py
该模块提供了一些代表解析树的叶子节点的数字值的常量(终端形符)。 请参阅 Python 发布版中的 Grammar/Tokens
文件获取在该语言语法情境下的名称定义。 这些名称所映射的特定数字值有可能在各 Python 版本间发生变化。
该模块还提供从数字代码到名称和一些函数的映射。 这些函数镜像了 Python C 头文件中的定义。
请注意一个词元的值可能取决于分词器选项。 例如,"+"
词元可能被报告为 PLUS
或 OP
,而 "match"
词元可能被报告为 NAME
或 SOFT_KEYWORD
。
- token.tok_name¶
将此模块中定义的常量的数值映射回名称字符串的字典,允许生成更加人类可读的解析树表示。
- token.ISTERMINAL(x)¶
对终端形符值返回
True
。
- token.ISNONTERMINAL(x)¶
对非终端形符值返回
True
。
- token.ISEOF(x)¶
如果 x 是表示输入结束的标记则返回
True
。
形符常量有:
- token.STRING¶
表示一个 字符串或字节串字面值 的词元值,不包括 格式化字符串字面值。 该词元字符串不会被解读:它包括两边的引号以及前缀(如果有的话);反斜杠将按照字面值被包括,而不会处理转义序列。
- token.COMMENT¶
用于表示注释的词元值。 解析器会忽略
COMMENT
词元。
- token.NL¶
用于表示非终结换行符的词元值。
NL
词元会在一个代码逻辑行跨越了多个物理行时被生成。 解析器会忽略NL
词元。
- token.FSTRING_MIDDLE¶
用于一个 格式化字面值 内部的字面文本包括格式说明的词元值。
替换字段(即格式化字符串的非字面值部分)使用与其他表达式相同的词元,并由
LBRACE
,RBRACE
,EXCLAMATION
和COLON
词元来分隔。
- token.ENDMARKER¶
表示输入结束的词元值。
- token.ENCODING¶
指示用于将源字节解码为文本的编码的形符值。
tokenize.tokenize()
返回的第一个形符将始终是一个ENCODING
形符。该词元类型不被 C 分词器所使用但却是
tokenize
模块所需要的。
下列词元类型不会由 tokenize
模块产生,它们是为分词器或解析器内的特殊用处而定义的。
- token.TYPE_IGNORE¶
指明一个
type: ignore
注释已被识别的词元值。 此种词元仅在设置了PyCF_TYPE_COMMENTS
旗标时会代替常规的COMMENT
词元被产生。
- token.TYPE_COMMENT¶
指明一个类型注释已被识别的词元值。 此种词元仅在设置了
PyCF_TYPE_COMMENTS
旗标时会代替常规的COMMENT
词元被产生。
- token.SOFT_KEYWORD¶
指明一个 软关键字 的词元值。
分词器绝不会产生该值。 要检测一个软关键字,请将一个
NAME
词元字符串传给keyword.issoftkeyword()
。
- token.ERRORTOKEN¶
用于表示错误输入的词元值。
tokenize
模块通常用引发异常而不是发出这个词元来指明错误。 它也可以发出OP
或NAME
等词元并附带将被解析器拒绝的字符串。
The remaining tokens represent specific operators and
delimiters.
(The tokenize
module reports these as OP
; see exact_type
in the tokenize
documentation for details.)
形符 |
值 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The following non-token constants are provided:
- token.N_TOKENS¶
The number of token types defined in this module.
- token.EXACT_TOKEN_TYPES¶
将形符字符串表示形式映射到其数字代码的字典。
Added in version 3.8.
在 3.5 版本发生变更: 增加了 AWAIT
和 ASYNC
形符。
在 3.7 版本发生变更: 移除了 AWAIT
和 ASYNC
形符。 "async" 和 "await" 被形符化为 NAME
形符。
在 3.8 版本发生变更: 增加了 TYPE_COMMENT
, TYPE_IGNORE
, COLONEQUAL
。 重新增加了 AWAIT
和 ASYNC
形符(需要用它们来支持解析 ast.parse()
的 feature_version
设为 6 或更低的较旧 Python 版本)。
在 3.12 版本发生变更: Added EXCLAMATION
.
在 3.13 版本发生变更: 重新移除了 AWAIT
和 ASYNC
形符。