Skip to main content
 首页 » 编程设计

python之检查是否有任何一长串变量不是 None 的优雅方法,并返回不是的那个

2025年05月04日24yyy_WW

我从环境变量中加载了 8 个变量。如果其中任何一个都不是,我想退出并 sys.exit - 但我也想提醒用户缺少哪个变量。

有几种方法可以做到这一点。假设 a = os.environ.get('a') 代码是通过 h

预先编写的

最详细的工作方式是:

if a is None: 
    print("A is required") 
    sys.exit(1) 
if b is None: 
    print("B is required") 
    sys.exit(1) 
if c is None: 
    print("C is required") 
    sys.exit(1) 
... 
so on until the check for h 

最干净的方法是:

if not any([a,b,c,d,e,f,g,h]): 
    print("? is required") 
    sys.exit(1) 

甚至:

if None in [a,b,c,d,e,f,g,h]: 
    print("? is required") 
    sys.exit(1) 

是否有可能从多个 python 检查(后两个)中实际获取变量名并将其打印给用户?

我可以通过 [a,b,c,d,e,f,g,h].index(None) 获取变量的 index 但是我不确定如何从索引转到变量名。

请您参考如下方法:

首先在检索环境变量时执行检查:

def needenv(name): 
    val = os.environ.get(name) 
    if val is None: 
        sys.exit('{} is required.'.format(name)) 
    return val 
 
a = needenv('a') 
b = needenv('b') 
...