Можно ли глобальную переменную удалить функцией?

В 1 функции обозначил переменную глобальной, в другой функции этой программы эта переменная должна удаляться, в голову пришло только это

def func():
    global var
def del_func():
    del var

Но это не работает, как можно решить проблему?


Ответы (2 шт):

Автор решения: CrazyElf

Можно, но для этого в той функции, где вы её удаляете, вам её тоже нужно объявить глобальной. И надо эту переменную вообще создать сначала. Директива global не создаёт переменную, она только объясняет интерпретатору, где ему искать переменную с таким именем, если она вдруг встретится.

def func():
    global var
    var = 'test'

def del_func():
    global var
    del var
→ Ссылка
Автор решения: eri

Ещё один вариант удаления глобальной переменной:

def func():
    global var
    var = 0

def del_func():
    globals().pop('var')

Переменная удалится из глобальных. Но тут деструктор вызовется скорее всего после завершения del_func (надо позвать человека с дисассемблером чтоб это проверить).

→ Ссылка