2013-02-17 9 views

Antwort

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

funktionieren sollte.

0

Eine etwas über generische Lösung halten im Hinblick auf alle Mitglieder:

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

Hier ist ein Einzeiler

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

Es wird nicht geprüft, ob id None ist, aber das war nicht Teil der ursprünglichen Frage.

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

gibt es einen schöneren Weg, dies zu tun? –

5

Dies sollte auch in beliebiger Tiefe skalieren:

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