defwrapFun(func):definner(a, b):print('function name:', func.__name__)
r = func(a, b)return r
return inner
@wrapFundefmyadd(a, b):return a + b
print(myadd(2,3))
2.函数装饰类
defwrapClass(cls):definner(a):print('class name:', cls.__name__)return cls(a)return inner
@wrapClassclassFoo():def__init__(self, a):
self.a = a
deffun(self):print('self.a =', self.a)
m = Foo('xiemanR')
m.fun()