Skip to main content
 首页 » 编程设计

python之检查python中是否存在多个变量

2025年05月04日14jiqing9006

我想检查python中是否存在多个变量。我尝试了一些方法,但我不知道为什么这在 Python 中不起作用。

这是我的 Python 代码,我在 if 条件中使用“all”

feature = [{'a':'A'}] 
table = 'demo' 
if all(var in locals() for var in ('feature', 'table')): 
    print("all exist") 
else: 
    print("at least one not exists") 

这个输出应该是“全部存在”,但结果是“至少一个不存在”,这让我很困惑。

请您参考如下方法:

问题是您将生成器函数作为参数传递给 all 函数,因此 locals() 在该生成器函数的本地范围内被调用,不是你从中调用all的范围(定义了feature和table)。

为了诊断错误,我们可以试试这个:

>>> all(print(locals()) for var in ('feature', 'table')) 
{'var': 'feature', '.0': <tuple_iterator object at 0x7fef8edc27f0>} 

请注意生成器函数作用域中的局部变量是 var(它包含您要检查的键)和 .0,它包含对迭代器的引用元组 ('feature', 'table')。这些是进行迭代所需的唯一局部变量。

要解决这个问题,请从正确的范围调用 locals():

feature = [{'a':'A'}] 
table = 'demo' 
 
outer_locals = locals() 
 
if all(var in outer_locals for var in ('feature', 'table')): 
    print("all exist") 
else: 
    print("at least one not exists") 

正如预期的那样,输出现在“全部存在”。