How do I check if both of two variables exists in Python?
本问题已经有最佳答案,请猛点这里访问。
我想用python编写一个类似于javascript的语句:
// do something only if both variables exist
}
我正在努力:
# do something only if both variables exist
但是它不起作用…当我调试时,变量2没有被定义,但是函数仍然试图运行。怎么了?
1 2 3 4 5 6 7 | try: variable1 variable2 except NameError: # Not there else: # They exist |
这是一件非常罕见的事情。在你做之前确保这是个好主意。
请注意,设置为
1 2 | if variable1 is not None and variable2 is not None: do_whatever() |
如果在布尔上下文中保证非
1 2 | if variable1 and variable2: do_whatever() |
您可以在Python中执行samething。
1 2 | if variable1 and variable2: ... |
但这意味着,两个变量都有真实的值。
注意:在python中使用未赋值的变量是一个错误。
如果你真的想检查变量是否已经定义好了,你可以使用这个hack,但是我不推荐这样做。
1 2 | if (variable1 in locals() and variable2 in locals()): ... |
如果有更多的变量需要检查,
1 | if all(var in locals() for var in (variable1, variable2, variable3)): |
通过布尔运算符连接这两个变量。你真正想要的是两个比较的结果。
1 2 | if variable1=!None and variable2=!None: # do something |
除此之外,不存在的变量不是无而是不存在的。如果要检查变量是否存在,请检查该变量是否在
1 2 | if"variable1" in locals() and"variable2" in locals(): # do something |
注意这里引用了变量,因为您不想计算它们!