token — Konstanten für Python-Syntaxbäume¶
Quellcode: Lib/token.py
Dieses Modul stellt Konstanten bereit, die die numerischen Werte von Blattknoten des Syntaxbaums (terminale Tokens) repräsentieren. Im Verzeichnis Grammar/Tokens der Python-Distribution finden Sie die Definitionen der Namen im Kontext der Sprachgrammatik. Die spezifischen numerischen Werte, denen die Namen zugeordnet sind, können sich zwischen Python-Versionen ändern.
Das Modul stellt auch eine Zuordnung von numerischen Codes zu Namen und einige Funktionen bereit. Die Funktionen spiegeln Definitionen in den C-Header-Dateien von Python wider.
Beachten Sie, dass der Wert eines Tokens von den Tokenizer-Optionen abhängen kann. Beispielsweise kann ein "+"-Token entweder als PLUS oder OP gemeldet werden, oder ein "match"-Token kann entweder NAME oder SOFT_KEYWORD sein.
- token.tok_name¶
Dictionary, das die numerischen Werte der in diesem Modul definierten Konstanten auf Namenszeichenketten abbildet, was die Generierung von lesbareren Darstellungen von Syntaxbäumen ermöglicht.
- token.ISTERMINAL(x)¶
Gibt
Truefür terminale Token-Werte zurück.
- token.ISNONTERMINAL(x)¶
Gibt
Truefür nicht-terminale Token-Werte zurück.
- token.ISEOF(x)¶
Gibt
Truezurück, wenn x der Marker ist, der das Ende der Eingabe anzeigt.
Die Token-Konstanten sind
- token.NAME¶
Token-Wert, der einen Identifier anzeigt. Beachten Sie, dass Schlüsselwörter auch zunächst als
NAME-Tokens tokenisiert werden.
- token.NUMBER¶
Token-Wert, der ein numerisches Literal anzeigt
- token.STRING¶
Token-Wert, der ein Zeichenketten- oder Byte-Literal anzeigt, ausgenommen formatierte Zeichenketten-Literale. Der Token-String wird nicht interpretiert: er enthält die umschließenden Anführungszeichen und das Präfix (falls vorhanden); Backslashes werden wörtlich übernommen, ohne Escape-Sequenzen zu verarbeiten.
- token.OP¶
Ein generischer Token-Wert, der einen Operator oder Trennzeichen anzeigt.
CPython Implementierungsdetail: Dieser Wert wird nur vom
tokenize-Modul gemeldet. Intern verwendet der Tokenizer exakte Token-Typen.
- token.COMMENT¶
Token-Wert, der zur Anzeige eines Kommentars verwendet wird. Der Parser ignoriert
COMMENT-Tokens.
- token.NEWLINE¶
Token-Wert, der das Ende einer logischen Zeile anzeigt.
- token.NL¶
Token-Wert, der zur Anzeige eines nicht-terminierenden Zeilenumbruchs verwendet wird.
NL-Tokens werden generiert, wenn eine logische Codezeile über mehrere physische Zeilen fortgesetzt wird. Der Parser ignoriertNL-Tokens.
- token.INDENT¶
Token-Wert, der am Anfang einer logischen Zeile verwendet wird, um den Beginn eines eingerückten Blocks anzuzeigen.
- token.DEDENT¶
Token-Wert, der am Anfang einer logischen Zeile verwendet wird, um das Ende eines eingerückten Blocks anzuzeigen.
- token.FSTRING_START¶
Token-Wert, der zur Anzeige des Beginns eines f-string-Literals verwendet wird.
CPython Implementierungsdetail: Der Token-String enthält das Präfix und die öffnenden Anführungszeichen, aber nicht den Inhalt des Literals.
- token.FSTRING_MIDDLE¶
Token-Wert, der für literalen Text innerhalb eines f-string-Literals verwendet wird, einschließlich Formatierungsangaben.
CPython Implementierungsdetail: Ersetzungsfelder (d. h. die nicht-literalen Teile von f-strings) verwenden dieselben Tokens wie andere Ausdrücke und werden durch
LBRACE,RBRACE,EXCLAMATIONundCOLON-Tokens begrenzt.
- token.FSTRING_END¶
Token-Wert, der zur Anzeige des Endes eines f-strings verwendet wird.
CPython Implementierungsdetail: Der Token-String enthält die schließenden Anführungszeichen.
- token.TSTRING_START¶
Token-Wert, der zur Anzeige des Beginns eines Template-String-Literals verwendet wird.
CPython Implementierungsdetail: Der Token-String enthält das Präfix und die öffnenden Anführungszeichen, aber nicht den Inhalt des Literals.
Hinzugefügt in Version 3.14.
- token.TSTRING_MIDDLE¶
Token-Wert, der für literalen Text innerhalb eines Template-String-Literals verwendet wird, einschließlich Formatierungsangaben.
CPython Implementierungsdetail: Ersetzungsfelder (d. h. die nicht-literalen Teile von t-strings) verwenden dieselben Tokens wie andere Ausdrücke und werden durch
LBRACE,RBRACE,EXCLAMATIONundCOLON-Tokens begrenzt.Hinzugefügt in Version 3.14.
- token.TSTRING_END¶
Token-Wert, der zur Anzeige des Endes eines Template-String-Literals verwendet wird.
CPython Implementierungsdetail: Der Token-String enthält die schließenden Anführungszeichen.
Hinzugefügt in Version 3.14.
- token.ENDMARKER¶
Token-Wert, der das Ende der Eingabe anzeigt. Wird in Top-Level-Grammatikregeln verwendet.
- token.ENCODING¶
Token-Wert, der die verwendete Kodierung zum Dekodieren von Quellbytes in Text anzeigt. Das erste von
tokenize.tokenize()zurückgegebene Token ist immer einENCODING-Token.CPython Implementierungsdetail: Dieser Token-Typ wird nicht vom C-Tokenizer verwendet, ist aber für das
tokenize-Modul erforderlich.
Die folgenden Token-Typen werden nicht vom tokenize-Modul erzeugt und sind für spezielle Verwendungen im Tokenizer oder Parser definiert.
- token.TYPE_IGNORE¶
Token-Wert, der anzeigt, dass ein
type: ignore-Kommentar erkannt wurde. Solche Tokens werden anstelle von regulärenCOMMENT-Tokens nur mit dem FlagPyCF_TYPE_COMMENTSerzeugt.
- token.TYPE_COMMENT¶
Token-Wert, der anzeigt, dass ein Typ-Kommentar erkannt wurde. Solche Tokens werden anstelle von regulären
COMMENT-Tokens nur mit dem FlagPyCF_TYPE_COMMENTSerzeugt.
- token.SOFT_KEYWORD¶
Token-Wert, der ein weiches Schlüsselwort anzeigt.
Der Tokenizer erzeugt diesen Wert nie. Um nach einem weichen Schlüsselwort zu suchen, übergeben Sie den String eines
NAME-Tokens ankeyword.issoftkeyword().
- token.ERRORTOKEN¶
Token-Wert, der zur Anzeige falscher Eingaben verwendet wird.
Das
tokenize-Modul zeigt Fehler im Allgemeinen durch Auslösen von Ausnahmen an, anstatt dieses Token auszugeben. Es kann auch Tokens wieOPoderNAMEmit Strings ausgeben, die später vom Parser zurückgewiesen werden.
Die verbleibenden Tokens repräsentieren spezifische Operatoren und Trennzeichen. (Das tokenize-Modul meldet diese als OP; siehe exact_type in der Dokumentation des tokenize-Moduls für Details.)
Token |
Wert |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Die folgenden Nicht-Token-Konstanten werden bereitgestellt
- token.N_TOKENS¶
Die Anzahl der in diesem Modul definierten Token-Typen.
- token.EXACT_TOKEN_TYPES¶
Ein Dictionary, das die Zeichenkettenrepräsentation eines Tokens auf seinen numerischen Code abbildet.
Hinzugefügt in Version 3.8.
Geändert in Version 3.5: Hinzugefügt wurden die Tokens AWAIT und ASYNC.
Geändert in Version 3.7: Die Tokens AWAIT und ASYNC wurden entfernt. "async" und "await" werden nun als NAME-Tokens tokenisiert.
Geändert in Version 3.8: Hinzugefügt wurden TYPE_COMMENT, TYPE_IGNORE, COLONEQUAL. Die Tokens AWAIT und ASYNC wurden wieder hinzugefügt (sie werden benötigt, um ältere Python-Versionen für ast.parse() mit `feature_version` auf 6 oder niedriger gesetzt zu unterstützen).
Geändert in Version 3.12: Hinzugefügt wurde EXCLAMATION.
Geändert in Version 3.13: Die Tokens AWAIT und ASYNC wurden erneut entfernt.