Questo modulo fornisce l'accesso ad alcune variabili usate o mantenute dall'interprete, e a funzioni che interagiscono fortemente con l'interprete stesso. È sempre disponibile.
argv[0]
è il nome dello script (dipende dal sistema
operativo che questi venga indicato da un percorso completo o meno).
Se il comando viene eseguito usando l'opzione -c dalla
riga di comando dell'interprete, argv[0]
viene impostata con
il contenuto della stringa '-c'
. Se nessun nome di script
viene passato all'interprete Python, argv
ha lunghezza zero.
'big'
su piattaforme big-endian (il byte più
significativo prima) e 'little'
su piattaforme
little-endian (byte meno significativo prima).
Nuovo nella versione 2.0.
modules.keys()
riporta
solo i moduli importati).
valore) |
None
, questa funzione lo
stampa su sys.stdout
e lo salva in __builtin__._
.
sys.displayhook
viene chiamata sul risultato della
valutazione di un'espressione inserita in una sessione interattiva
di Python. La visualizzazione di questi valori può essere
personalizzata assegnando a sys.displayhook
un'altra funzione
con un solo argomento.
tipo, valore, traceback) |
sys.stderr
un dato traceback
[NdT:traccia dello stack] e l'eccezione che lo ha creato.
Quando un'eccezione viene sollevata e non raccolta,
l'interprete chiama sys.excepthook
con tre argomenti: la
classe dell'eccezione, l'istanza dell'eccezione ed un oggetto
traceback. In una sessione interattiva ciò si verifica appena prima
che il controllo venga restituito al prompt; in un programma Python,
invece, appena prima che il programma stesso termini. La gestione di
eccezioni di così alto livello può essere personalizzata assegnando
a sys.excepthook
un'altra funzione con tre argomenti.
displayhook
e excepthook
all'avvio del programma. Essi vengono salvati
in modo tale che displayhook
e excepthook
possano venire
ripristinati nel caso vengano sostituiti con degli oggetti corrotti.
) |
Se nessuna eccezione viene momentaneamente gestita da qualche parte
sullo stack, viene restituita una tupla contenente tre valori
None
. Altrimenti, i valori restituiti sono
((tipo, valore, traceback)
). Il loro
significato è il seguente: tipo riceve il tipo dell'eccezione
che si sta gestendo (un oggetto classe); valore riceve il
cosiddetto parametro dell'eccezione (il suo valore associato o
il secondo argomento da sollevare, che è sempre un'istanza
di classe se il tipo dell'eccezione è un oggetto classe);
traceback riceve un oggetto di tipo traceback (cfr. Reference
Manual) che comprende lo stack della chiamata a partire dal punto
in cui si è verificata originariamente l'eccezione.
Se viene chiamata exc_clear(), questa funzione
restituisce tre valori None
fino a quando non viene sollevata
un'altra eccezione nel thread corrente oppure lo stack d'esecuzione
non ritorna a un frame (d'esecuzione) dove viene gestita un'altra
eccezione.
Assegnare il valore di ritorno di
traceback ad una variabile locale in una funzione che
stia gestendo un'eccezione provocherà un riferimento
circolare. Ciò impedirà che qualsiasi cosa, referenziata da una
variabile locale nella stessa funzione oppure da traceback, venga
trattata dal garbage-collector. Dal momento che la maggior parte
delle funzioni non ha bisogno di accedere al valore di traceback,
la soluzione migliore è quella di usare qualcosa del tipo
exctype, value = sys.exc_info()[:2]
, per estrarre soltanto
il tipo e il valore dell'eccezione. Se si ha veramente bisogno del
traceback, assicuratevi di eliminarlo dopo l'uso (la cosa migliore
sarebbe un'istruzione try ... finally) oppure
chiamare exc_info() all'interno di una funzione che non
gestisca lei stessa un'eccezione.
Note:
A partire dalla versione 2.2 di Python, tali circoli viziosi
vengono automaticamente corretti quando la garbage collection
viene abilitata e divengono irrangiungibili, ma rimane comunque più
efficiente evitarne la creazione.
) |
None
, fino a quando non viene sollevata
un'altra eccezione nel thread corrente oppure lo stack d'esecuzione
ritorna ad un frame (d'esecuzione) dove si sta gestendo un'altra
eccezione.
Questa funzione è necessaria soltanto in poche ed oscure situazioni. Queste includono sistemi di registrazione e gestione di errori, che restituiscono informazioni sull'ultima eccezione oppure su quella corrente. La funzione può anche venire usata anche per cercare di liberare risorse e dare l'avvio alla terminazione di un oggetto, sebbene non esiste garanzia su quali oggetti verranno liberati, se ve ne sono. Nuovo nella versione 2.3.
exc_type
viene impostato su None
e gli altri due restano
indefiniti.
'/usr/local'
. Può venire impostata al momento della
compilazione con l'argomento --exec-prefix nello
script configure. Specificatamente, tutti i file di
configurazione (es. il file header pyconfig.h) vengono
installati nella directory
exec_prefix + '/lib/pythonversion/config'
e i moduli di
libreria condivisi in
exec_prefix + '/lib/pythonversion/lib-dynload'
, dove
version è uguale a version[:3]
.
[arg]) |
None
è equivalente a passare zero, qualsiasi altro
oggetto viene stampato sullo sys.stderr
, e il risultato nel
codice di uscita è 1.
In particolare, sys.exit("messaggio di errore")
è la maniera
più veloce di uscire da un programma quando si verifica un errore.
os._exit().
) |
) |
) |
) |
None
se viene usata la
codifica predefinita di sistema. Il valore del risultato dipende dal
sistema operativo:
oggetto) |
) |
[profondità]) |
Questa funzione dovrebbe essere utilizzata solamente per scopi speciali o interni (all'interprete).
) |
platform può assumere uno dei seguenti valori:
Questa funzione incapsula la funzione Win32 GetVersionEx(); consultate la documentazione Microsoft per ulteriori informazioni su questi valori.
Disponibilità: Windows. Nuovo nella versione 2.3.
if sys.hexversion >= 0x010502F0: # uso di qualche funzionalità avanzata ... else: # usa un'implementazione alternativa o l'invio di un #+ avvertimento all'utente ...
Questa viene chiamata "hexversion" (letteralmente: "versione
esadecimale") poiché assomiglia a qualcosa di comprensibile solo
quando viene vista attraverso la funzione built-in hex().
Per una codifica più leggibile potete utilizzare il valore
di version_info
.
Nuovo nella versione 1.5.2.
Il significato delle variabili è lo stesso di quello dei valori
restituiti da exc_info(), vista precedentemente.
Poiché esiste un solo thread interattivo, la thread-safety non è un
problema per queste variabili, a differenza di quanto accade per
exc_type exc_type
etc..
2**31-1
. Il più
grande numero intero negativo è -maxint-1
-- l'asimmetria è
frutto dell'aritmetica binaria in complemento a 2.
Inizializzata all'avvio del programma, il primo elemento
di questa lista, path[0]
, è la directory contenente lo script
utilizzato per invocare l'interprete Python. Se la directory
dello script non è disponibile (p.es. se l'interprete viene
invocato interattivamente, o se lo script viene letto direttamente
dallo standard input), path[0]
è una stringa vuota, che indica
a Python di cercare i moduli prima nella directory corrente.
Attenzione che la directory dello script viene inserita prima
delle altre voci risultanti in PYTHONPATH.
Un programma è libero di modificare questa lista per i propri scopi.
Modificato nella versione 2.3: le stringhe Unicode non vengono più ignorate.
'sunos5'
o 'linux1'
. Può venire utilizzata per
aggiungere componenti specifici del sistema a path
, per
istanza.
'/usr/local'
. Può venire
impostata in fase di compilazione con l'opzione
--prefix nello script di configure.
La principale collezione dei moduli di libreria di Python viene
installata nella directory
prefix + '/lib/pythonversion'
, mentre gli header file
indipendenti dal sistema (tutti, eccetto pyconfig.h) vengono
collocati in prefix + '/include/pythonversion'
, dove
version è uguale a version[:3]
.
'>>
> '
e '... '
. Se un oggetto non stringa
viene assegnato ad entrambe le variabili, la funzione
str() viene valutata ogni volta che l'interprete si prepara
a leggere un nuovo comando interattivo; queste stringhe possono venire
usate per implementare un prompt dinamico.
intervallo) |
100
, il che
significa che il controllo viene fatto ogni 100 istruzioni Python
virtuali. Impostandolo a un valore maggiore è possibile incrementare
le prestazioni per i programmi che fanno uso di thread.
Impostandolo a un valore <=
0, il controllo viene effettuato ad
ogni istruzione virtuale, massimizzando la responsività a scapito di
un maggiore carico di lavoro.
nome) |
n) |
sys.setdlopenflags(0)
. Per condividere i
simboli attraverso i moduli di estensione, si deve chiamare
sys.setdlopenflags(dl.RTLD_NOW | dl.RTLD_GLOBAL)
. I nomi
simbolici per le opzioni del modulo possono essere trovate sia nel
modulo dl che nel modulo DLFCN.
Se DLFCN non è disponibile, può essere generato da
/usr/include/dlfcn.h usando lo script h2py.
Disponibilità: Unix.
Nuovo nella versione 2.2.
profilefunc) |
None
.
limite) |
Il massimo limite possibile dipende dalla piattaforma in uso. Un utente può aver bisogno di impostare un limite più alto quando ha un programma che richieda una ricorsione profonda, e una piattaforma che supporti un limite più alto. Questo dovrebbe essere fatto con cura, perché un limite troppo alto può causare un crash.
tracefunc) |
stdin
viene usato per
tutti gli input dell'interprete, ad eccezione degli script che non
includono le chiamate input() e
raw_input(). stdout
viene
usato per l'output di print, per le istruzioni, e per gli
inviti di input() e raw_input().
L'invito dell' interprete ed i suoi messaggi di errore (la maggior
parte di essi) vengono inviati allo stderr
. stdout
e
stderr
non hanno bisogno di essere dei file oggetto built-in:
ogni oggetto è accettabile finché possiede un metodo write()
che prenda una stringa argomento. (Il cambiamento di questi oggetti
non influisce sui flussi I/O standard, per processi eseguiti da
os.popen(), os.system(), o della famiglia di
funzioni di exec*() nel modulo os.)
stdin
,
stderr
e stdout
all'inizio del programma. Vengono
usati durante la finalizzazione e potrebbero essere utili per
ripristinare gli attuali file che sappiamo essere file oggetto
funzionanti, nel caso in cui siano stati sovrascritti con un oggetto
corrotto.
1000
. Quando viene impostata a 0
o
inferiore, tutta l'informazione della traceback viene soppressa e
viene stampata soltanto il tipo di eccezione ed il valore.
'version (#build_number,
build_date, build_time) [compiler]'
. I primi tre
caratteri vengono usati per identificare la versione nelle directory
d'installazione (dove appropriato su ciascuna piattaforma).
Un esempio:
>>> import sys >>> sys.version '1.5.2 (#0 Apr 13 1999, 10:51:12) [MSC 32 bit (Intel)]'
'alpha'
,
'beta'
, 'candidate'
o 'final'
.
Il version_info
corrispondente alla versione Python 2.0
è: (2, 0, 0, 'final', 0)
.
Nuovo nella versione 2.0.
Vedete anche:
sys.path
.