0
多くの属性を持つ2つのクラスがありますが、1つを除くすべてのクラスは類似のプロパティ関数を持つ必要があります。私は、これらのプロパティをすべての属性に対して手動で記述することを避けることをお勧めします。これは面倒な作業であり、クラスに追加する各属性についてフォローアップする必要があるためです。また、私は複数のクラスのためにそれを行う必要があります。多くのクラス属性でプロパティを使用する
my_containerのオブジェクトが生成された後でこれを使用します。 以下は、解決したい場合の簡単な例です。特定のパターンをたどる一連のプロパティについては
def my_class:
@property
def a1(self):
return self.my_container._a1
...
@property
def a10(self):
return self.my_container._a10
プロパティでなければなりませんか?代わりに '__getattr__'関数を実装するだけで済みます。 'def __getattr __(self、name):getattr(self、 '_' + name)'を返します。 –
setattrも実装する必要があります。このコードでは魔法のメソッドを避けることをお勧めします@MartijnPieters – Tsachi
次に、クラスデコレータまたはメタクラスのいずれかを使用して、すべてのプロパティオブジェクトを生成します。 –