Les différentes valeurs AMPER, BACKQUOTE etc. correspondent au numéro de jeton du symbole approprié pour les jetons/opérateurs python. c'est-à-dire AMPER = & (esperluette), AMPEREQUAL = "& =".
Cependant, vous n'avez pas vraiment à vous soucier de cela. Ils sont utilisés par le tokeniser C interne, mais l'encapsuleur python simplifie la sortie, traduisant tous les symboles d'opérateur au jeton OP
. Vous pouvez traduire les identifiants de jetons symboliques (la première valeur de chaque ligne de jetons) en nom symbolique à l'aide du dictionnaire tok_name du module token. Par exemple:
>>> import tokenize, token
>>> s = "{'test':'123','hehe':['hooray',0x10]}"
>>> for t in tokenize.generate_tokens(iter([s]).next):
print token.tok_name[t[0]],
OP STRING OP STRING OP STRING OP OP STRING OP NUMBER OP OP ENDMARKER
Comme une déclaration de débogage rapide pour décrire les jetons un peu mieux, vous pouvez également utiliser tokenize.printtoken. Ceci est sans papier, et ressemble à ce n'est pas présent dans python3, il ne faut pas compter sur elle pour le code de production, mais comme un coup d'œil à ce que les jetons signifient, vous pouvez le trouver utile:
>>> for t in tokenize.generate_tokens(iter([s]).next):
tokenize.printtoken(*t)
1,0-1,1: OP '{'
1,1-1,7: STRING "'test'"
1,7-1,8: OP ':'
1,8-1,13: STRING "'123'"
1,13-1,14: OP ','
1,14-1,20: STRING "'hehe'"
1,20-1,21: OP ':'
1,21-1,22: OP '['
1,22-1,30: STRING "'hooray'"
1,30-1,31: OP ','
1,31-1,35: NUMBER '0x10'
1,35-1,36: OP ']'
1,36-1,37: OP '}'
2,0-2,0: ENDMARKER ''
les différentes valeurs du tuple vous revenez pour chaque jeton sont, dans l'ordre:
- Id jeton (correspond au type, par exemple sTRING, OP, NOM, etc.)
- la chaîne - le texte du jeton pour ce jeton, par exemple "&" ou "'une chaîne" "
- Le début (ligne , colonne) dans votre entrée
- La fin (ligne, colonne) dans votre entrée
- Le texte intégral de la ligne sur laquelle se trouve le jeton.
"J'ai besoin d'une solution immédiate." Hein? – SilentGhost