假设我有一个名为 prop 的成员的 myObject 类。我有一个变量 var,它可能是也可能不是 myObject。我想检查 prop 是否具有某个值,如果是,则执行某些操作;如果没有,或者 var 不是 myObject,则什么都不做。
这样做是否安全:
if isinstance(var, myObject) and var.prop == 10:
#Do something
基本上,如果第一部分的计算结果为 False,是否保证不会检查 if 语句的第二部分?如果即使 var 不是 myObject 也进行检查,则会抛出错误。
最佳答案
回答你的问题,是的,和
短路。 But I wouldn't do it that way .更好的方法是使用 hasattr
或 try, except
block 。
if hasattr(var, 'prop') and var.prop == 10:
print var.prop
或者(如果出现一个 propless var 是不寻常的):
try:
print var.prop
except AttributeError:
print "propless var"
关于python - 在检查 if 语句后引用可能不存在的变量是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5132267/