Effacer la variable en python

Est-il un moyen pour effacer la valeur d'une variable en python?

Par exemple si j'implémentais un arbre binaire:

Class Node:
    self.left = somenode1
    self.right = somenode2

Si je voulais supprimer un nœud de l'arborescence, je devrais définir self.left sur vide.

139
demandé sur tashuhka 2011-11-23 09:17:26

7 réponses

Quel est le problème avec self.left = None? Est-ce que j'interprète mal votre question, ou n'êtes-vous pas familier avec le mot-clé None?

119
répondu bnaul 2011-11-23 05:20:18

Le mot clé del ferait l'affaire.

>>> a=1
>>> a
1
>>> del a
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

MODIFIÉ:, Mais dans ce cas je vote pour self.left = None

282
répondu starrify 2013-06-04 17:11:33

var = None "efface la valeur", en définissant la valeur de la variable sur "null" comme la valeur de "None", mais le pointeur sur la variable reste.

del var supprime la définition de la variable totalement.

Si vous voulez utiliser la variable plus tard, par exemple, définissez une nouvelle valeur pour elle, c'est-à-dire conservez la variable, None serait mieux.

74
répondu user11788 2015-12-23 15:31:48

En fait, cela ne supprime pas la variable / propriété. Tout ce qu'il fera est de définir sa valeur sur None, donc la variable prendra toujours de la place en mémoire. Si vous voulez effacer complètement toute l'existence de la variable de la mémoire, vous pouvez simplement taper:

del self.left
52
répondu Viraj Shah 2015-09-05 21:35:29

, Vous pouvez essayer ceci:

 self.left = None
3
répondu Aditya Naidu 2011-11-23 05:21:06

Si vous voulez le supprimer totalement, utilisez del:

del your_varaible

Ou autrement:

your_varaible=None

Btw, si vous avez une liste ou un tuple, peut le rendre vide comme:

your_varaible.clear()

Alors {[4] } sera vide

2
répondu U9-Forward 2018-09-23 06:07:23

self.left = None devrait faire le travail.

1
répondu karthik339 2014-03-23 16:26:19