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