私は、複数の必要なデータとメタデータを持つデータセットを記述するオブジェクトを持っています。異なるデータとメタデータの要素自体は、名前と値の属性を含む多数の異なる属性を持つ同じ型のオブジェクトです。これらのデータ要素とのやりとりのほとんどはvalue属性を使用しているため、.valueを使用して絶えず参照するのは面倒なので、各データ要素のプロパティを定義しようとしていますが、新しいデータ要素は自動的にそれに対して定義されたプロパティを取得します。具体的には、ここではいくつかのサンプルコードは次のとおりです。Pythonでプログラムでプロパティを定義する方法
class my_par(object):
def __init__(self, name, value):
self.name = name
self.value = value
class my_obj(object):
def __init__(self, xval, yval, zval):
self.xval = my_par('x', xval)
self.yval = my_par('y', yval)
self.zval = my_par('z', zval)
私は
@property
def x(self):
return self.xval.value
@x.setter
def x(self, value):
self.xval.value = value
を使用してmy_objクラスのプロパティを作ることができますが、私はすべてのmy_par型オブジェクト上のプログラムでそれを行うための方法をしたいです。 (私はすでにそれらのオブジェクトのイテレータを持っているので、プログラムでプロパティを定義するコードが必要です)。
一つ関連して、非常に有名なSOページを試してみては、[動的にPythonのクラスにプロパティを追加する方法は?]である(http://stackoverflow.com/questions/1325673/how-to-add -property-to-a-python-class-dynamic)と@AlexMartelliからの興味深い答えを持つ別のものは[動的に\ @propertyをpythonに追加]です(http://stackoverflow.com/questions/2954331/dynamically-adding-property -in-python)を実行します。 – Dilettant
私はこれらのページを見つけようとしましたが、助けてくれましたが、私が望んでいたもの、つまり__init__のプロパティをすべてのインスタンスに存在するように定義していませんでした。 –