Pythonのproperty関数の使い方は?
Pythonでは、property関数は読み取りおよび書き込み可能な属性を作成するための組み込み関数です。
property関数はデコレーターとして使用でき、メソッドを対応する読み書き可能な属性に変換します。これは4つの引数を受け入れます:fget、fset、fdel、およびdocです。
- fget: プロパティ値を取得する関数。プロパティにアクセスされたときに呼び出されます。
- fset: アトリビュート値の設定関数。アトリビュートに値を代入した時に呼び出されます。
- fdel: 属性の値を削除する関数。del キーワードを使って属性を削除するときに呼び出されます。
- **doc:**属性のドキュメント文字列。
Property 関数の基本的な使用方法の例を以下に示します。
class MyClass:
def __init__(self):
self._x = 0
# 定义可读写的属性x
@property
def x(self):
return self._x
@x.setter
def x(self, value):
self._x = value
@x.deleter
def x(self):
del self._x
# 创建实例
obj = MyClass()
# 访问属性
print(obj.x) # 输出: 0
# 设置属性
obj.x = 10
# 再次访问属性
print(obj.x) # 输出: 10
# 删除属性
del obj.x
# 再次访问属性
print(obj.x) # 抛出 AttributeError: 'MyClass' object has no attribute '_x'
上の例では、デコレータ@propertyで、xメソッドを読み書き可能な属性に変換しています。デコレータ@x.setterは、その属性の値を設定するためのメソッドを定義し、デコレータ@x.deleterは、その属性の値を削除するためのメソッドを定義しています。