hasattr( オブジェクト,"属性名")
持っていればTrue、さもなくばFalseが返ってくる。
if hasattr( obj, "detail" ):
detail = obj.detail
これ属性が動的に変わるオブジェクトには、これやっとかないと、AttributeError: 'xxx' object has no attribute 'yyy'みたいなエラーが出る。
なければ空文字列が返る、とかのほうが使い勝手がいいような気がするが、そこはきっと私にはうかがい知れない深い事情があるのだろう。