Determina se la variabile è definita in Python

| | | | | | | | |

Come fai a sapere se una variabile è stata impostata in un punto particolare del codice in fase di esecuzione? Questo non è sempre ovvio perché (1) la variabile potrebbe essere impostata in modo condizionale e (2) la variabile potrebbe essere eliminata in modo condizionale. Sto cercando qualcosa come defined() in Perl o isset() in PHP o defined? in Ruby.

if condition: a = 42 # è "a" definito qui? if other_condition: del a # è "a" definito qui?