Déterminer si la variable est définie en Python

| | | | | | | | |

Comment savoir si une variable a été définie à un endroit particulier du code lors de l'exécution ? Ce n'est pas toujours évident car (1) la variable peut être définie de manière conditionnelle et (2) la variable peut être supprimée de manière conditionnelle. Je cherche quelque chose comme defined() en Perl ou isset() en PHP ou defined? en Ruby.

if condition : a = 42 # est-ce que "a" est défini ici ? if other_condition: del a # est-ce que "a" est défini ici ?