如何在Python中检查两个变量是否都存在?
如何在Python中检查两个变量是否都存在?
这个问题已经有了答案:如何检查变量是否存在?
我想在Python中写出像这样的JavaScript语句:
if (variable1 && variable2) {
//只有两个变量都存在时才执行某些操作
}
我试过:
if not (variable1 and variable2) is None:
#只有两个变量都存在时才执行某些操作
但是它没有起作用……当我进行调试时,变量2未定义,但函数仍然尝试运行。出了什么问题?
admin 更改状态以发布 2023年5月21日
你可以在 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)):
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
值在布尔上下文中保证被视为真,这可以简化。例如,如果variable1
和variable2
是re.search
调用的结果,它们要么是匹配对象,要么是None
,那么你可以使用:
if variable1 and variable2: do_whatever()