例如:
>>> s = 'string'
>>> hasattr(s, 'join')
True
>>> 'join' in dir(s)
True
Run Code Online (Sandbox Code Playgroud)
Python文档说,hasattr实现调用getattr并查看它是否引发异常.然而,这导致了很大的开销,因为丢弃了所获得的值并且可能引发异常.
问题是,如果呼叫'attribute' in dir(obj)意味着同一件事,它是否更快,更安全,还是在特定场合可能失败?
python ×1