ゲッターとセッターは、クラスの属性に対して直接アクセスする代わりに、メソッドを介してアクセスする方法です。これにより、属性の値を制御し、適切なバリデーションやエラーチェックを行うことができます。
まず、ゲッターの使い方を見てみましょう。以下の例では、get_name
メソッドを使用してname
属性にアクセスします。
class Person:
def __init__(self, name):
self._name = name
def get_name(self):
return self._name
person = Person("John")
print(person.get_name()) # 結果: John
get_name
メソッドは、name
属性の値を返します。name
属性に直接アクセスするのではなく、ゲッターメソッドを使用することで、name
属性へのアクセスが制御されます。
次に、セッターの使い方を見てみましょう。以下の例では、set_name
メソッドを使用してname
属性の値を変更します。
class Person:
def __init__(self, name):
self._name = name
def set_name(self, name):
self._name = name
person = Person("John")
person.set_name("Mike")
print(person.get_name()) # 結果: Mike
set_name
メソッドは、引数として渡された値をname
属性に代入します。これにより、属性の値を制御しながら変更することができます。
さらに、Pythonでは、ゲッターやセッターをデコレータとしても使用することができます。以下の例をご覧ください。
class Person:
def __init__(self, name):
self._name = name
@property
def name(self):
return self._name
@name.setter
def name(self, value):
self._name = value
person = Person("John")
print(person.name) # 結果: John
person.name = "Mike"
print(person.name) # 結果: Mike
@property
デコレータは、ゲッターメソッドに付けられます。@name.setter
デコレータは、セッターメソッドに付けられます。これにより、ゲッターやセッターをメソッドとして呼び出すことなく、属性に直接アクセスできます。
ゲッターとセッターは、オブジェクト指向プログラミングの重要な概念であり、属性へのアクセスと制御を効果的に行うための強力なツールです。この記事で紹介した方法とコード例を参考にして、Pythonでゲッターとセッターを使いこなしてください。