我想检查名为 component + "_STATUS"或 + "_DESC"的变量是否存在。
我尝试了以下方法,但它不起作用。所以,这是我的代码:
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)
最佳答案
我可能是错的,但我认为你可以通过以下方式做到这一点(没有 usign eval - 因为它不是很好用):
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)
关于python - 如何检查变量是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6895748/