token — Константы, используемые с деревьями разбора Python
Исходный код: Lib/token.py
Этот модуль предоставляет константы, представляющие числовые значения листовых узлов дерева разбора (терминальных токенов). Определения имен в контексте грамматики языка см. в файле Grammar/Tokens из дистрибутива Python. Конкретные числовые значения, которым соответствуют имена, могут меняться между версиями Python.
Модуль также предоставляет сопоставление числовых кодов с именами и некоторые функции. Функции повторяют определения из заголовочных файлов C Python.
Обратите внимание, что значение токена может зависеть от параметров токенизатора. Например, токен "+" может быть представлен как PLUS или OP, а токен "match" может быть представлен как NAME или SOFT_KEYWORD.
-
token.tok_name -
Словарь, сопоставляющий числовые значения констант, определённых в этом модуле, с соответствующими строковыми именами. Это позволяет создавать более наглядное представление деревьев разбора.
-
token.ISTERMINAL(x) -
Возвращает
Trueдля значений терминальных токенов.
-
token.ISNONTERMINAL(x) -
Возвращает
Trueдля значений нетерминальных токенов.
-
token.ISEOF(x) -
Возвращает
True, если x — маркер конца ввода.
Константы токенов:
-
token.NAME -
Значение токена, обозначающее идентификатор. Обратите внимание, что ключевые слова изначально также токенизируются как токены
NAME.
-
token.NUMBER -
Значение токена, обозначающее числовой литерал
-
token.STRING -
Значение токена, обозначающее строковый или байтовый литерал, за исключением форматированных строковых литералов. Строка токена не интерпретируется: она включает окружающие кавычки и префикс (если он указан); обратные косые черты включаются буквально, без обработки escape-последовательностей.
-
token.OP -
Общее значение токена, обозначающее оператор или разделитель.
Особенность реализации CPython: Это значение выдаёт только модуль
tokenize. Внутри токенизатор использует вместо него точные типы токенов.
-
token.COMMENT -
Значение токена, обозначающее комментарий. Парсер игнорирует токены
COMMENT.
-
token.NEWLINE -
Значение токена, обозначающее конец логической строки.
-
token.NL -
Значение токена, обозначающее незавершающий символ новой строки. Токены
NLсоздаются, когда логическая строка кода продолжается на нескольких физических строках. Парсер игнорирует токеныNL.
-
token.INDENT -
Значение токена, используемое в начале логической строки для обозначения начала блока с отступом.
-
token.DEDENT -
Значение токена, используемое в начале логической строки для обозначения конца блока с отступом.
-
token.FSTRING_START -
Значение токена, обозначающее начало литерала f-строки.
Особенность реализации CPython: Строка токена включает префикс и открывающую кавычку (или кавычки), но не содержимое литерала.
-
token.FSTRING_MIDDLE -
Значение токена, используемое для буквального текста внутри литерала f-строки, включая спецификации формата.
Особенность реализации CPython: Поля подстановки (то есть нелитеральные части f-строк) используют те же токены, что и другие выражения, и ограничиваются токенами
LBRACE,RBRACE,EXCLAMATIONиCOLON.
-
token.FSTRING_END -
Значение токена, обозначающее конец f-строки.
Особенность реализации CPython: Строка токена содержит закрывающую кавычку (или кавычки).
-
token.ENDMARKER -
Значение токена, обозначающее конец ввода.
-
token.ENCODING -
Значение токена, обозначающее кодировку, использованную для декодирования исходных байтов в текст. Первый токен, возвращаемый функцией
tokenize.tokenize(), всегда будет токеномENCODING.Особенность реализации CPython: Этот тип токена не используется токенизатором C, но необходим модулю
tokenize.
Следующие типы токенов не создаются модулем tokenize и определены для особых случаев использования в токенизаторе или парсере:
-
token.TYPE_IGNORE -
Значение токена, указывающее, что распознан комментарий
type: ignore. Такие токены создаются вместо обычных токеновCOMMENTтолько при установленном флагеPyCF_TYPE_COMMENTS.
-
token.TYPE_COMMENT -
Значение токена, указывающее, что распознан комментарий с типом. Такие токены создаются вместо обычных токенов
COMMENTтолько при установленном флагеPyCF_TYPE_COMMENTS.
-
token.SOFT_KEYWORD -
Значение токена, обозначающее мягкое ключевое слово.
Токенизатор никогда не создаёт это значение. Чтобы проверить, является ли слово мягким ключевым словом, передайте строку токена
NAMEфункцииkeyword.issoftkeyword().
-
token.ERRORTOKEN -
Значение токена, используемое для обозначения некорректного ввода.
Модуль
tokenizeобычно сообщает об ошибках, вызывая исключения, а не выдавая этот токен. Он также может выдавать такие токены, какOPилиNAME, со строками, которые впоследствии отклоняются парсером.
Остальные токены представляют конкретные операторы и разделители. (Модуль tokenize сообщает о них как о OP; подробности см. в разделе exact_type документации модуля tokenize.)
Токен | Значение |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Предоставляются следующие константы, не являющиеся токенами:
-
token.N_TOKENS -
Количество типов токенов, определённых в этом модуле.
-
token.EXACT_TOKEN_TYPES -
Словарь, сопоставляющий строковое представление токена его числовому коду.
Добавлено в версии 3.8.
Изменено в версии 3.5: Добавлены токены AWAIT и ASYNC.
Изменено в версии 3.7: Удалены токены AWAIT и ASYNC. Теперь “async” и “await” токенизируются как токены NAME.
Изменено в версии 3.8: Добавлены TYPE_COMMENT, TYPE_IGNORE, COLONEQUAL. Токены AWAIT и ASYNC добавлены обратно (они необходимы для поддержки разбора более старых версий Python функцией ast.parse() при значении feature_version, равном 6 или меньше).
Изменено в версии 3.12: Добавлен токен EXCLAMATION.
Изменено в версии 3.13: Токены AWAIT и ASYNC снова удалены.
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/token.html