我已经给了这个问题一段时间,但没有找到正确的答案。我正在使用装饰器,将更多成员添加到给定的类中。这是我使用的伪代码:
def test_decorator(aa,bb):
def inner_func(test_class):
class Wrapper(test_class):
def __init__(self,*arg,**kwargs):
super().__init__(*arg,**kwargs)
self.aa = aa
self.bb = bb
# add some more variables
def print(self):
print("a: {} b: {}".format(self.a,self.b))
return Wrapper
return inner_func
@test_decorator(aa = 0, bb = 1)
class test_class(object):
def __init__(self,**kwargs):
self.a = kwargs['a']
self.b = kwargs['b']
obj = test_class(a=2,b=3)
在阅读Python functools.wraps equivalent for classes之后,我仍然不清楚如何使用functools.update_wrapper
来正确保留包装好的类的身份,以便能够调用help(obj)
,obj.__name__
等并查看test_class
而不是Wrapper
的信息