Python 如何检查变量是否存在?
我想检查名为component+“\u STATUS”或+“\u DESC”的变量是否存在 我尝试了以下方法,但无效。下面是我的代码:Python 如何检查变量是否存在?,python,arrays,variables,Python,Arrays,Variables,我想检查名为component+“\u STATUS”或+“\u DESC”的变量是否存在 我尝试了以下方法,但无效。下面是我的代码: Components = ['SAVE_DOCUMENT', \ 'GET_DOCUMENT', \ 'DVK_SEND', \ 'DVK_RECEIVE', \ 'GET_USER_INFO', \ 'NOTIFICATIONS', \ 'ERROR_LOG', \ 'SUMMARY_STATUS'] for Component in Components:
Components = ['SAVE_DOCUMENT', \
'GET_DOCUMENT', \
'DVK_SEND', \
'DVK_RECEIVE', \
'GET_USER_INFO', \
'NOTIFICATIONS', \
'ERROR_LOG', \
'SUMMARY_STATUS']
for Component in Components:
try:
eval(Component + "_STATUS")
eval(Component + "_DESC")
except NameError:
print "Missing component " + Component + " information!"
sys.exit(StateUnknown)
>>f=1
>>>globals()
{uuuuu内置名称:,'uuuuu名称:''uuuuu主名称','f':1','uuuu文档:无','uuuuuu包:无}
>>>globals()中的“f”
真的
>>f=1
>>>globals()
{uuuuu内置名称:,'uuuuu名称:''uuuuu主名称','f':1','uuuu文档:无','uuuuuu包:无}
>>>globals()中的“f”
真的
我可能错了,但我认为您可以通过以下方式来实现(不使用usign eval-因为使用它不是一个很好的方法):
如果您需要检查局部范围内是否存在变量,您可以使用,否则您可以使用我可能是错的,但我认为您可以通过以下方式执行此操作(不使用usign eval-因为使用它不是很好): 若您需要检查局部范围中是否存在变量,则可以使用,否则可以使用
>>> f = 1
>>> globals()
{'__builtins__': <module 'builtins' (built-in)>, '__name__': '__main__', 'f': 1, '__doc__': None, '__package__': None}
>>> 'f' in globals()
True
Components = ['SAVE_DOCUMENT', 'GET_DOCUMENT', 'DVK_SEND', 'DVK_RECEIVE', 'GET_USER_INFO', 'NOTIFICATIONS', 'ERROR_LOG', 'SUMMARY_STATUS']
missed = [x for x in Components if x + "_STATUS" not in locals() or x + "_DESC" not in locals()]
if missed:
print "Missing components: {0:}".format(missed)
sys.exit(StateUnknown)