假如我有一个对象a,他有属性b,属性b也是一个对象他有属性c,我现在想判断属性c是否是None
if not a.b and a.b.c:
# do something
如果c还有属性d,d还有属性e,我要是判断e存不存在那么代码会很长,有没有什么直接的方法可以判断对象的属性是不是None的?
###属性不存在和属性是None是两回事。
看属性存不存在用hasattr(obj,attr)。
如你所说,如果是很长的属性列表,或者他是动态的,如果属性都存在,只是看他是不是None,那可以这样:
`
obj=something
attrs=[...]
i=0
is_none=False
temp=obj
while i<len(attrs):
temp=getattr(temp,attrs[i])
if temp is None:
is_none=True
break
i+=1
`
为了健壮性,你还可以判断属性是否存在。