6.2 Istruzioni assert

Le istruzioni sono un modo utile per inserire asserzioni di controllo nel programma:

assert_stmt  ::=  "assert" expression ["," expression]
Potete scaricare il file originale (in Inglese) come testo.

La forma semplice, "assert espressione", è equivalente a

if __debug__:
   if not expression: raise AssertionError

La forma estesa, "assert espressione1, espressione2", è equivalente a

if __debug__:
   if not expression1: raise AssertionError, expression2

Queste equivalenze assumono che __debug__ e AssertionError si riferiscano alle variabili built-in con questi nomi. Nell'implementazione corrente, la variabile built-in __debug__ è 1 in circostanze normali, 0 quando viene richiesta un'ottimizzazione (utilizzando l'opzione -O da riga di comando). Il generatore del codice corrente non emette alcun codice per un'istruzione assert quando viene richiesta un'ottimizzazione al momento della compilazione. Si noti che è inutile includere il codice sorgente per le espressioni che falliscono in quanto verranno visualizzate come parte della traccia dello stack.

Assegnamenti in __debug__ sono illegali. Il valore per la variabile built-in viene determinato quando parte l'interprete.

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