にはどうすればPython:getattrを使ってオブジェクトの属性の属性を取得する方法は?
a = myobject.id.number
を評価し、それMyObjectに内蔵getattr
とNone
であればNoneを返していますか?たぶんgetattr(myobject, "id.number", None)
?ビュー内の
にはどうすればPython:getattrを使ってオブジェクトの属性の属性を取得する方法は?
a = myobject.id.number
を評価し、それMyObjectに内蔵getattr
とNone
であればNoneを返していますか?たぶんgetattr(myobject, "id.number", None)
?ビュー内の
getattr(getattr(myobject, "id", None), "number", None)
が動作するはずです。
A、わずかに超える一般的な解決策の維持すべてのメンバー:
if myobject and myobject.id and myobject.id.number:
a = myobject.id.number
else:
a = None
が、ここではワンライナー
a = myobject is not None and myobject.id.number or None
だそれはIDがNoneかどうかをチェックしませんが、それは元の質問の一部ではありませんでした。
return myobject.id.number if myobject else None
これを行うにはより良い方法がありますか? –
これは、任意の深さにも拡張する必要があります
reduce(lambda obj, attr : getattr(obj, attr, None), ("id","num"), myobject)
あなたはこのために心を持っている任意の特定のユースケースはありますか? –