Как установить переменную Python в "undefined"?

в Python 3, у меня есть глобальная переменная, которая начинается как "undefined".

затем я установил его на что-то.

есть ли способ вернуть эту переменную в состояние "не определено"?

@martijnpieters

EDIT-это показывает, как глобальная переменная начинается в состоянии undefined.

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
>>> 

5 ответов


Вы можете удалить глобальное имя x С помощью

del x

Python не имеет "переменных" в смысле C или Java. В Python переменная-это просто тег можно применить к любому объекту, в отличие от имени refencing некоторой фиксированной ячейке памяти.

удаление не обязательно удаляет объект, на который указано имя.


вы, вероятно, хотите установить его в None.

variable = None

вы также можете определить свой var x как None

x = None

Если вы хотите иметь возможность проверить его "неопределенное состояние", вы должны установить его в None:

variable = None

и

if variable is None: 

Если вы хотите очистить материал, вы можете удалить его,del variable но это должно быть задачей сборщика мусора.


в свете комментариев ОП:

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

и, как и остальные, вы можете удалить определенную переменную с помощью del ключевое слово.