如何在Python中检查两个变量是否都存在?

13 浏览
0 Comments

如何在Python中检查两个变量是否都存在?

这个问题已经有了答案:如何检查变量是否存在?

我想在Python中写出像这样的JavaScript语句:

if (variable1 && variable2) {

//只有两个变量都存在时才执行某些操作

}

我试过:

if not (variable1 and variable2) is None:

#只有两个变量都存在时才执行某些操作

但是它没有起作用……当我进行调试时,变量2未定义,但函数仍然尝试运行。出了什么问题?

admin 更改状态以发布 2023年5月21日
0
0 Comments

你可以在 Python 中做同样的事情。

if variable1 and variable2:
    ...

但这意味着两个变量都具有Truthy值

注意:在 Python 中使用尚未分配值的变量是一个错误。

如果你真的想检查变量是否已经定义,你可以使用这个技巧,但我不建议这样做

if (variable1 in locals() and variable2 in locals()):
   ...

如果你想检查更多的变量,

if all(var in locals() for var in (variable1, variable2, variable3)):

0
0 Comments

try:
    variable1
    variable2
except NameError:
    # Not there
else:
    # They exist

这是一件相当罕见的事情,在你做之前确保这是一个好主意。

请注意,变量被设置为None与它不存在是不同的。如果你想检查变量是否为None,那么你只是搞砸了布尔逻辑语法:

if variable1 is not None and variable2 is not None:
    do_whatever()

如果非None值在布尔上下文中保证被视为真,这可以简化。例如,如果variable1variable2re.search调用的结果,它们要么是匹配对象,要么是None,那么你可以使用:

if variable1 and variable2:
    do_whatever()

0