私は、取得、設定、削除のための具体的な方法ではなく、@propertyデコレータをPythonで使用しています。いくつかのコード例を以下に示します。Pythonでgetter、setter、deleterを自動的に設定する
class Person(object):
def __init__(self):
self._firstName = None
self._lastName = None
self._age = None
@property
def firstName(self): return self._firstName
@firstName.setter
def firstName(self, val): self._firstName = val
@firstName.deleter
def firstName(self): del self._firstName
@property
def lastName(self): return self._lastName
@lastName.setter
def lastName(self, val): self._lastName = val
@lastName.deleter
def lastName(self): del self._lastName
@property
def age(self): return self._age
@age.setter
def age(self, val): self._age = val
@age.deleter
def age(self): del self._age
Peter = Person()
Peter.firstName = 'Peter'
Peter.lastName = 'Smith'
Peter.age = 21
print ' '.join([Peter.firstName, Peter.lastName])
ご覧のとおり、この例のコードの大部分は、メソッドの定義です。
私の変数ごとにgetter、setter、およびdeleterを自動的に割り当てる方法があるかどうかです。私の実際のコードでは、より多くの変数があり、それぞれのメソッドを設定する反復コードのように思えます。
私は、単純なケースでは厳密には必要ではないかもしれないが、私はクラスの複雑さを増やすことを決める場合には、今のところメソッドをコーディングする方が好都合であることを認識しています。
* "クラスの複雑さを増やすことに決めた場合に備えて、今のところメソッドをコーディングする方がいいですよ" * - なぜあなたはそれらを必要なときに追加しませんか? *今すぐ*必要なものだけを実装し、コードが大きくなるにつれてリファクタリングします。拡張機能や機能をサポートするために今追加するものはすべて、ノイズだけです。 –