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
>>>
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.
Vous voulez probablement le régler sur Aucun.
variable = None
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.
À 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
.
Vous pouvez également définir votre var x comme étant None
x = None