Python転職初心者向けエンジニアリングブログ

Pythonに魅了されたあなたへ。エンジニアリングの扉を開く転職初心者向けのブログへようこそ。このブログでは、Pythonの奥深さに迫りながら、エンジニアリングへの転職に役立つ情報を提供しています。未経験者から始めるPythonエンジニアリングの世界への一歩を踏み出すためのガイダンス、ベストプラクティス、そして成功事例など、初心者の方でもわかりやすいコンテンツをお届けします。

Python: setattr(), getattr(), delattr(), hasattr() - 属性の操作

LYPプレミアム会員 python


Pythonにおいて、setattr()getattr()delattr()hasattr()はオブジェクトの属性に対する操作を行う組み込み関数です。この記事では、これらの関数について詳しく説明し、実際のコード例を交えて理解を深めます。

setattr() 関数 - 属性の設定

setattr()関数は、オブジェクトの属性を設定します。基本的な構文は以下の通りです。

setattr(object, name, value)
  • object: 属性を設定するオブジェクト。
  • name: 設定する属性の名前。
  • value: 設定する属性に対する値。

以下は具体的な例です。

class Person:
    pass

# インスタンスを作成
person = Person()

# 属性を設定
setattr(person, 'name', 'John')
setattr(person, 'age', 25)

# 確認
print(person.name)  # John
print(person.age)   # 25

getattr() 関数 - 属性の取得

getattr()関数は、オブジェクトの属性を取得します。基本的な構文は以下の通りです。

getattr(object, name[, default])
  • object: 属性を取得するオブジェクト。
  • name: 取得する属性の名前。
  • default: 属性が存在しない場合に返すデフォルト値。

具体的な例を見てみましょう。

class Person:
    name = 'John'
    age = 25

# インスタンスを作成
person = Person()

# 属性を取得
name_value = getattr(person, 'name')
age_value = getattr(person, 'age')

# 確認
print(name_value)  # John
print(age_value)   # 25

delattr() 関数 - 属性の削除

delattr()関数は、オブジェクトの属性を削除します。基本的な構文は以下の通りです。

delattr(object, name)
  • object: 属性を削除するオブジェクト。
  • name: 削除する属性の名前。

以下は具体的な例です。

class Person:
    name = 'John'
    age = 25

# インスタンスを作成
person = Person()

# 属性を削除
delattr(person, 'name')

# 確認
print(hasattr(person, 'name'))  # False
print(hasattr(person, 'age'))   # True

hasattr() 関数 - 属性の有無の確認

hasattr()関数は、オブジェクトが指定された属性を持っているかどうかを確認します。基本的な構文は以下の通りです。

hasattr(object, name)
  • object: 属性を確認するオブジェクト。
  • name: 確認する属性の名前。

以下は具体的な例です。

class Person:
    name = 'John'
    age = 25

# インスタンスを作成
person = Person()

# 属性の有無を確認
has_name = hasattr(person, 'name')
has_gender = hasattr(person, 'gender')

# 確認
print(has_name)    # True
print(has_gender)  # False

まとめ

setattr()getattr()delattr()hasattr()関数は、オブジェクトの属性に対する柔軟な操作を提供します。これらの関数を活用することで、動的な属性の設定や取得、削除、有無の確認が容易になります。

これで、これらの属性操作関数の基本的な使い方について理解でき