Python の Property関数の使い方は?
Pythonでは、property関数は、属性のgetter、setter、deleterメソッドを定義するために使用されるデコレータです。それはクラス内のメソッドを属性のアクセスと変更に変換でき、それによって属性のアクセスと変更をより簡潔かつ統一的に行えます。
property 関数を使用する一般的な手順は以下のとおりです。
- プロパティのゲッターに変換されるメソッドをクラス内に定義するクラスを定義します。メソッド名は通常、プロパティ名と同じです。
- @propertyデコレータを利用して、メソッドをプロパティのgetterメソッドに変換する。
- セッターメソッドを定義し、@propertyデコレータを使ってそのセッターメソッドをプロパティのセッターに変換します。
- デリターメソッドを定義し、@propertyデコレータを使ってプロパティのデリターメソッドに変換します。
サンプルのコードは以下です。
class Rectangle:
def __init__(self, width, height):
self._width = width
self._height = height
@property
def width(self):
return self._width
@width.setter
def width(self, value):
self._width = value
@property
def height(self):
return self._height
@height.setter
def height(self, value):
self._height = value
@property
def area(self):
return self._width * self._height
上記のコードでは、@propertyデコレータによって width、height、area メソッドは属性のgetterメソッドに変換され、setterメソッドについては属性のsetterメソッドに変換されています。これにより、属性として対応する値を取得および変更することができます。
使用例:
rect = Rectangle(10, 5)
print(rect.width) # 输出: 10
rect.width = 8
print(rect.width) # 输出: 8
print(rect.area) # 输出: 40
上記の例では、`rect.width`でプロパティの値を取得し、`rect.width = 8`でプロパティの値を変更できます。また、`rect.area`で計算プロパティの値を取得できます。