2013-02-17 216 views

回答

3
getattr(getattr(myobject, "id", None), "number", None) 

應該工作。

0

稍微超過通用的解決方案同時考慮所有成員:

if myobject and myobject.id and myobject.id.number: 
    a = myobject.id.number 
else: 
    a = None 
1

這裏是一個一行

a = myobject is not None and myobject.id.number or None 

它不檢查ID是否爲無,但這不是原來的問題的一部分。

0
return myobject.id.number if myobject else None 
+0

有沒有更好的方法來做到這一點? – 2015-12-03 21:20:41

5

這應該很好地擴展到任何深度:

reduce(lambda obj, attr : getattr(obj, attr, None), ("id","num"), myobject)