如何创建应用于类的装饰器?
具体来说,我希望使用装饰器 addID将成员 __id添加到类中,并更改构造器 __init__以获取该成员的 id参数。
def getId(self): return self.__id
classdecorator addID(cls):
def __init__(self, id, *args, **kws):
self.__id = id
self.getId = getId
cls.__init__(self, *args, **kws)
@addID
class Foo:
def __init__(self, value1):
self.value1 = value1
以上应等同于:
class Foo:
def __init__(self, id, value1):
self.__id = id
self.value1 = value1
def getId(self): return self.__id