40 lines
973 B
Python
40 lines
973 B
Python
class TestClass(object):
|
||
def __init__(self):
|
||
self.fun = 0
|
||
|
||
def decorator(self, fun):
|
||
#通过fun变量实现对传入函数的回调
|
||
self.fun = fun
|
||
#仅注册回调函数,将原函数返回,不执行原函数工鞥呢,不改变原函数功能
|
||
return fun
|
||
|
||
def decorator1(self, type):
|
||
def wrapper(func):
|
||
if type == 'A':
|
||
self.fun_A = func
|
||
if type == 'B':
|
||
self.fun_B = func
|
||
return func
|
||
return wrapper
|
||
|
||
test = TestClass()
|
||
|
||
#将decorator_test函数传入test的decorator函数,并执行decorator函数
|
||
@test.decorator
|
||
def decorator_test():
|
||
print('this is decorator_test')
|
||
|
||
@test.decorator1('A')
|
||
def decorator_test():
|
||
print('this is decorator_test A')
|
||
|
||
@test.decorator1('B')
|
||
def decorator_test():
|
||
print('this is decorator_test B')
|
||
|
||
#通过test的fun变量回调decorator_test函数
|
||
test.fun();
|
||
|
||
test.fun_A ();
|
||
test.fun_B ();
|