Очистить переменную в python

Есть ли способ очистить значение переменной в python?

Например, если я выполнял двоичное дерево:

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

Если бы я хотел удалить из дерева node, мне нужно было бы установить self.left в пустую.

Ответ 1

Что не так с self.left = None?

Ответ 2

Это ключевое слово del.

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

EDITED: Но в этом случае я голосую за self.left = None

Ответ 3

var = None "очищает значение", устанавливая значение переменной "null" как значение "None", однако указатель на переменную остается.

del var полностью удаляет определение для переменной.

Если вы хотите использовать эту переменную позже, например. установите для него новое значение, т.е. сохраните переменную, None будет лучше.

Ответ 4

Собственно, это не удаляет переменную/свойство. Все, что он сделает, это установить значение None, поэтому переменная по-прежнему будет занимать место в памяти. Если вы хотите полностью стереть все существование переменной из памяти, вы можете просто ввести:

del self.left

Ответ 5

  • Если хотите полностью удалить его, используйте del:

    del your_variable

  • Или иначе, чтобы очистить его содержимое:

    your_variable = None

  • Если это список или кортеж, вы можете сделать его пустым, например:

    your_variable.clear()

Тогда your_variable будет пустым

Ответ 6

Вы можете попробовать следующее:

 self.left = None

Ответ 7

self.left = None должен выполнить задание.

Ответ 8

Что делать, если я хочу полностью удалить переменную, которая в некоторых случаях не существует. Есть ли параметр, чтобы избежать ошибки? Мне нужно удалить несколько переменных:

del a, b, c, d

Я мог бы использовать цикл и попробовать/исключать, но я предпочитаю некоторые переключатели, чтобы избежать этого.

Ответ 9

Я использовал несколько вариантов, упомянутых выше:

del self.left

или установите значение None с помощью

self.left = None

Важно знать различия и использовать несколько обработчиков исключений, когда вы используете значение None. Если вы печатаете значение условных операторов с помощью шаблона, скажем,

print("The value of the variable is {}".format(self.left))

вы можете увидеть значение переменной печати "Значение переменной - Нет". Таким образом, вам придется разместить там несколько обработчиков исключений:

if self.left:
    #Then only print stuff

Приведенная выше команда будет печатать значения, только если self.left не является None

Ответ 10

Функция удаления в python физически не удалит переменную, и вы не освободите пространство памяти, таким образом, = None - правильный путь к ней.