Wie beurteilen ichPython: Wie Attribut von einem Objekt mit Getattr erhalten?
a = myobject.id.number
und None zurück, wenn es myobject None
mit eingebautem in getattr
ist? Vielleicht getattr(myobject, "id.number", None)
?
Wie beurteilen ichPython: Wie Attribut von einem Objekt mit Getattr erhalten?
a = myobject.id.number
und None zurück, wenn es myobject None
mit eingebautem in getattr
ist? Vielleicht getattr(myobject, "id.number", None)
?
getattr(getattr(myobject, "id", None), "number", None)
funktionieren sollte.
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
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.
return myobject.id.number if myobject else None
gibt es einen schöneren Weg, dies zu tun? –
Dies sollte auch in beliebiger Tiefe skalieren:
reduce(lambda obj, attr : getattr(obj, attr, None), ("id","num"), myobject)
Gibt es einen besonderen Anwendungsfall Sie dies im Sinne? –