bar次のクラス (バグのあるプロパティを持つ) が与えられた場合、プロパティが存在することを確認する最も簡単な方法は何ですか?
class Foo(object):
    @property
    def bar(self):
        raise AttributeError('unforeseen attribute error!')
両方ともhasattr失敗getattrし、機能するだけdirです:
foo = Foo()
print hasattr(foo, 'bar')
# False
try:
    getattr(foo, 'bar')
    print True
except AttributeError as e:
    print False
# False    
print 'bar' in dir(foo)
# True
私が考えることができる最善の総合的な解決策は次のとおりです。
def robust_hasattr(obj, attr):
    return hasattr(obj, attr) or attr in dir(obj)
より良い方法はありますか?