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.