Определите, определяется ли переменная в Python [дубликат]

Можно использовать то, что кодировки символов для цифр - все в порядке от 48 (для '0') к 57 (для '9'). Это сохраняется для ASCII, UTF-x и практически вся другая кодировка ( см. комментарии ниже для больше на этом ).

Поэтому целочисленное значение для любой цифры является цифрой минус '0' (или 48).

char c = '1';
int i = c - '0'; // i is now equal to 1, not '1'

синонимично с

char c = '1';
int i = c - 48; // i is now equal to 1, not '1'

Однако, я нахожу первое c - '0' намного более читаемым.

380
задан Community 23 May 2017 в 02:26
поделиться

5 ответов

try:
    thevariable
except NameError:
    print("well, it WASN'T defined after all!")
else:
    print("sure, it was defined.")
594
ответ дан 22 November 2019 в 23:55
поделиться

For this particular case it's better to do a = None instead of del a. This will decrement reference count to object a was (if any) assigned to and won't fail when a is not defined. Note, that del statement doesn't call destructor of an object directly, but unbind it from variable. Destructor of object is called when reference count became zero.

4
ответ дан 22 November 2019 в 23:55
поделиться

Я думаю, что лучше избегать такой ситуации. Будет чище и понятнее написать:

a = None
if condition:
    a = 42
120
ответ дан 22 November 2019 в 23:55
поделиться

'a' в vars () или 'a' в globals ()

если вы хотите быть педантичным, вы также можете проверить встроенные функции
'a' в vars ( __builtins __)

320
ответ дан 22 November 2019 в 23:55
поделиться
try:
    a # does a exist in the current namespace
except NameError:
    a = 10 # nope
16
ответ дан 22 November 2019 в 23:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: