Легкий способ проверить, что переменная определена в python?
Есть ли способ проверить, определена ли переменная (член класса или автономная) с указанным именем? Пример:
if "myVar" in myObject.__dict__ : # not an easy way
print myObject.myVar
else
print "not defined"
Ответ 1
Компактный способ:
print myObject.myVar if hasattr(myObject, 'myVar') else 'not defined'
htw путь более Pythonic, тем не менее.
hasattr() отличается от x in y.__dict__, хотя: hasattr() учитывает унаследованные атрибуты класса, а также динамические, возвращаемые из __getattr__, тогда как y.__dict__ содержит только те объекты, которые являются атрибутами y.
Паоло прав, может быть что-то не так, как вы делаете, если это необходимо. Но если вы просто делаете что-то быстрое и грязное, вы, вероятно, не заботитесь о Idiomatic Python, то это может быть короче.
try: x
except: print "var doesn't exist"
Ответ 4
Чтение и/или трюки в python:
'a' в locals() и
Ответ 5
Чтобы проверить, определена ли переменная myvar:
result = dir().count('myvar')
Если myvar определен, результатом будет 1, иначе это будет 0.