1. ホーム
  2. python

[解決済み] hasattr() vs try-except ブロックによる存在しない属性の処理

2023-02-24 12:04:17

疑問点

if hasattr(obj, 'attribute'):
    # do somthing

try:
    # access obj.attribute
except AttributeError, e:
    # deal with AttributeError

どれを優先すべきか、またその理由は?

どのように解決するのですか?

hasattr と同じタスクを内部で高速に実行します。 try/except ブロックと同じタスクを実行します。これは非常に特殊で最適化された1つのタスクのツールであり、したがって、適用できる場合は、非常に汎用の代替品よりも優先されるべきです。