Skip to main content
 首页 » 编程设计

python之如何检查变量是否存在

2025年05月04日1898°冷暖

我想检查名为 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)         

如果您需要检查变量在本地范围内的存在,您可以使用 locals() , 否则你可以使用 globals()