3.18 code --- Classes de base de l'interpréteur

Le module code fournit ce qu'il faut pour implémenter des boucles lecture - évaluation - impression en Python. Deux classes et des fonctions utilitaires sont incluses ; on peut les utiliser pour construire des applications qui fournissent une invite interactive d'interpréteur.

InteractiveInterpreter([locals])
Cette classe prend en charge l'interprétation de code et l'état de l'interpréteur (l'espace de nom de l'utilisateur) ; il ne traite pas le buffer d'entrée, ou l'envoi de l'invite, ni le nommage du fichier d'entrée (le nom de fichier est toujours passé explicitement). L'argument optionel locals spécifie le dictionnaire dans lequel le code sera exécuté; par défaut il s'agit d'un nouveau dictionnaire dont la clé '__name__' prend pour valeur '__console__' et la clé '__doc__' prend pour valeur None.

InteractiveConsole([locals[, nomfichier]])
Emule de près le comportement de l'interpréteur interactif Python. Cette classe est construite sur InteractiveInterpreter et ajoute l'invite utilisant les habituels sys.ps1 et sys.ps2, et la gestion du buffer d'entrée.

interact([banniere[, fonctionlecture[, local]]])
Fonction utilitaire pour exécuter une boucle lecture-évaluation-impression. Une nouvelle instance de InteractiveConsole est créée et, si elle est fournie, la fonction fonctionlecture est utilisée à la place de la méthode raw_input(). Si local est fournie, elle est passée au constructeur de InteractiveConsole pour servir d'espace de nom par défaut pour la boucle de l'interpréteur. La méthode interact() de l'instance est ensuite exécutée avec banniere passée comme bannière à utiliser, si elle est fournie. L'objet console est détruit après usage.

compile_command(source[, nomfichier[, symbole]])
Cette fonction est utile pour les programmes qui veulent émuler la boucle principale de l'interpréteur Python (la boucle lit-évalue-imprime). Toute l'astuce est de déterminer quand l'utilisateur a entré une commande incomplète qu'on peut compléter en entrant plus de texte (par opposition à une commande complète ou à une erreur de syntaxe). Cette fonction prend presque toujours la même décision que la boucle principale du vrai interpréteur.

source est la chaîne de caractères source; nomfichier est le nom de fichier optionnel depuis lequel la source est lue, qui prend par défaut la valeur '<input>'; et le paramètre optionnel symbole est le symbole de démarrage de la grammaire, qui doit être soit 'single' (valeur par défaut) ou 'eval'.

Retourne un objet code (le même que compile(source, nomfichier, symbole)) si la commande est complète et valide; None si la commande est incomplète; déclenche SyntaxError si la commande est complète et contient une erreur de syntaxe, ou déclenche OverflowError si la commande inclut une constante numérique qui dépasse les limites du type numérique approprié.


Sous-sections
  1. Objets de l'Interpréteur Interactif
  2. Objets Console Interactive