Python 2.5では、クラスを装飾するデコレータを作成する方法はありますか?具体的には、デコレータを使用してメンバーをクラスに追加し、コンストラクタを変更してそのメンバーの値を取得したいと思います。
次のようなものを探しています(「classFoo:」で構文エラーがあります:
def getId(self): return self.__id
class addID(original_class):
def __init__(self, id, *args, **kws):
self.__id = id
self.getId = getId
original_class.__init__(self, *args, **kws)
@addID
class Foo:
def __init__(self, value1):
self.value1 = value1
if __name__ == '__main__':
foo1 = Foo(5,1)
print foo1.value1, foo1.getId()
foo2 = Foo(15,2)
print foo2.value1, foo2.getId()
私が本当に求めているのは、PythonでC#インターフェイスのようなことをする方法だと思います。私は自分のパラダイムを切り替える必要があると思います。