Fumiのブログ

hasattr関数について | Python備忘録

# はじめに

今度開く勉強会のためにLINEボットのSDKを調べてたら、hasattr関数が使われていて、知らなかったので調べた。

ちなみに、勉強会はこちら↓

# 参照

# 結論

公式ドキュメントには次のように書いてあった。

hasattr(object, name)(原文) 引数はオブジェクトと文字列です。文字列がオブジェクトの属性名の一つであった場合 True を、そうでない場合 False を返します。 (この関数は、 getattr(object, name) を呼び出して AttributeError を送出するかどうかを見ることで実装されています。)

なるほど。ということは、次のような感じに実装されているのかな?

def hasattr(object, name):
    try:
        getattr(object, name)
        return True
    except AttributeError:
        return False
    except BaseException as err:
        raise err