Lew*_*wis 1 python logic if-statement boolean
假设我有一个名为prop的成员的myObject类.我有一个变量var,可能是也可能不是myObject.我想检查prop是否包含某个值,如果是,则执行某些操作,如果没有,或者var不是myObject,请执行.
执行以下操作是否安全:
if isinstance(var, myObject) and var.prop == 10:
#Do something
Run Code Online (Sandbox Code Playgroud)
基本上,如果第一部分的计算结果为False,是否可以保证不会检查if语句的第二部分?如果检查即使var不是myObject,也会引发错误.
回答你的问题,是的,and短路.但我不这样做.更好的方法是使用hasattr或try, except阻止.
if hasattr(var, 'prop') and var.prop == 10:
print var.prop
Run Code Online (Sandbox Code Playgroud)
或者(如果一个无用的var出现是不寻常的):
try:
print var.prop
except AttributeError:
print "propless var"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |