废话不多说,直接上源码。注:下面方法只对类下函数调用前做一些数据处理,下一章补充函数前后数据处理,所有函数异常捕获,干预函数传参等
def outer(myclass):
class Inner(myclass):
def __getattribute__(self, item):
x = super().__getattribute__(item) # 调用父类的getattribute方法
print('这里可以写入你的功能函数')
return x
return Inner
@outer
class MyClass: # 目标类,通过装饰MyClass来装饰类下面所有方法
def func_name(self, name):
print('my name is %s'%name)
def func_age(self, age)
print('my age is %s'age)
MyClass().func_name('wang')
MyClass().func_age('12')
========================================================