3.23 code -- Classi di base dell'interprete

Il modulo code fornisce degli strumenti per l'implementazione dei cicli leggi-valuta-stampa in Python. Vengono incluse due classi e funzioni di utilità, che possono venire utilizzate per costruire applicazioni che forniscano un prompt interattivo dell'interprete.

class InteractiveInterpreter( [locals])
Questa classe si occupa della fase di analisi e di interpretazione (lo spazio dei nomi dell'utente); non si occupa invece della bufferizzazione dell'input o della visualizzazione del prompt, oppure di nominare il file di input (il nome del file viene passato sempre in modo esplicito). L'argomento facoltativo locals specifica il dizionario nel quale verrà eseguito il codice; viene impostato in modo predefinito su di un dizionario appena creato, con la chiave '__name__' impostata su '__console__' e la chiave '__doc__' impostata su None.

class InteractiveConsole( [locals[, filename]])
Emula il comportamento dell'interprete interattivo di Python. Questa classe si fonda su InteractiveInterpreter ed aggiunge il prompt utilizzando le familiari sys.ps1, sys.ps2 e l'input buffering.

interact( [banner[, readfunc[, local]]])
Una funzione di utilità per eseguire un ciclo leggi-valuta-stampa. Crea una nuova istanza di InteractiveConsole ed imposta readfunc per venire usata come metodo raw_input(), se fornita. Se local viene fornita, viene passata al costruttore InteractiveConsole per poterla utilizzare come spazio dei nomi predefinito per l'interprete del ciclo. Il metodo interact() dell'istanza viene quindi eseguito con banner passato come il messaggio da visualizzare, se fornito. L' oggetto console viene scartato dopo l'utilizzo.

compile_command( source[, filename[, symbol]])
Questa funzione è utile per i programmi che vogliono emulare il ciclo principale dell'interprete Python (conosciuto come ciclo leggi-valuta-stampa). Il trucco consiste nel determinare quando l'utente ha digitato un comando incompleto che può essere completato digitando del testo ulteriore (in contrapposizione ad un comando completo o ad un errore di sintassi). Questa funzione quasi sempre intraprende la stessa decisione di quella del ciclo principale dell'interprete.

source rappresenta la stringa sorgente; filename rappresenta il nome del file facoltativo dal quale viene letto il sorgente, preimpostato a '<input>'; e symbol rappresenta il simbolo grammaticale di partenza, facoltativo, che dovrebbe essere 'single' (predefinito) oppure 'eval'.

Restituisce un codice oggetto (lo stesso di compile(source, filename, symbol)) se il comando è completo e valido; restituisce None se il comando è incompleto; solleva l'eccezione SyntaxError se il comando è completo e contiene un errore di sintassi, solleva l'eccezione OverflowError oppure ValueError se il comando contiene un carattere non valido.



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.