【Python入門】Pythonのgetattr関数とは?使い方と活用方法を徹底解説(Python 3.11)

Python

はじめに

Pythonには便利な組み込み関数が数多く存在しますが、その中でも特に柔軟なオブジェクト操作を可能にするのがgetattr関数です。本記事では、getattr関数の基本的な使い方から応用例まで詳しく解説します。

getattr関数とは?

getattr関数は、オブジェクトの属性(メンバ変数やメソッド)を動的に取得するための組み込み関数です。通常、オブジェクトの属性にアクセスする際は object.attribute のように記述しますが、getattr を使うことで文字列で指定した属性名を取得できるため、柔軟なプログラムを作成する際に役立ちます。

getattr関数の基本構文

getattr関数の基本的な構文は以下のとおりです。

getattr(object, name[, default])

引数の説明

  • object:属性を取得したいオブジェクト
  • name:取得したい属性名(文字列)
  • default(省略可能):指定した属性が存在しない場合に返すデフォルト値

getattr関数の使用例

例1:基本的な使い方

class Sample:
    def __init__(self):
        self.value = 42

obj = Sample()
print(getattr(obj, 'value'))  # 42

例2:存在しない属性にデフォルト値を設定

class Sample:
    pass

obj = Sample()
print(getattr(obj, 'value', '属性が存在しません'))  # "属性が存在しません"

例3:メソッドを取得して実行

class Sample:
    def greet(self):
        return "Hello!"

obj = Sample()
method = getattr(obj, 'greet')
print(method())  # "Hello!"

getattr関数の応用例

例4:動的な属性アクセスによる設定管理

class Config:
    def __init__(self):
        self.host = "localhost"
        self.port = 8080

config = Config()
setting = "host"
print(getattr(config, setting))  # "localhost"

例5:辞書を用いた動的なメソッド呼び出し

class Calculator:
    def add(self, a, b):
        return a + b

    def subtract(self, a, b):
        return a - b

calc = Calculator()
operation = "add"
method = getattr(calc, operation, None)
if method:
    print(method(5, 3))  # 8

まとめ

getattr関数は、Pythonのオブジェクトから動的に属性やメソッドを取得できる便利な関数です。特に、設定管理や動的なメソッド呼び出しの場面で有用です。基本的な使い方をマスターし、実践的な応用を試してみましょう。