web-dev-qa-db-fra.com

Comment définir une variable Python sur 'non définie'?

En Python 3, j'ai une variable globale qui commence par "indéfinie".

Je l'ai ensuite mis à quelque chose. 

Existe-t-il un moyen de ramener cette variable à un état "non défini"?

@martijnpieters

EDIT - cela montre comment une variable globale commence dans un état indéfini.

Python 2.7.5+ (default, Feb 27 2014, 19:37:08) 
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
>>> global x
>>> x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
>>> 
12
Duke Dougal

Vous pouvez supprimer un nom global x en utilisant

del x

Python n'a pas de "variables" dans le sens que C ou Java ont. En Python, une variable est simplement une balise que vous pouvez appliquer à n'importe quel objet, par opposition à un nom rappelant un emplacement mémoire fixe.

La suppression ne supprime pas nécessairement l’objet visé par le nom.

13
Sven Marnach

Vous voulez probablement le régler sur Aucun.

variable = None
17
justengel

Si vous voulez pouvoir tester son "état non défini", vous devez le régler sur Aucun:

variable = None

et tester avec 

if variable is None: 

Si vous voulez nettoyer des choses, vous pouvez les supprimer, del variable, mais cela devrait être la tâche du ramasse-miettes.

2
damienfrancois

À la lumière des commentaires du PO:

# check if the variable is undefined
try:
    x
# if it is undefined, initialize it
except NameError:
    x = 1

Et comme tout le monde le dit, vous pouvez supprimer une variable définie à l'aide du mot clé del.

1

Vous pouvez également définir votre var x comme étant None

x = None
0
Guillaume