修饰器是make_decorate
要修饰的函数是my_func
现在希望判断my_func的参数x
如果x==1, 就执行my_func;
否则, 就不执行my_func, 执行其他动作
代码如下:
def make_decorator(func):
print('aaa')
def decorator(x, *args, **kwargs):
print('bbb')
if x==1:
return func(x, *args, **kwargs)
else:
return 'Not run func'
return decorator
@make_decorator
def my_func(x):
print("ccc")
return x
# 如果x=1
x_return = my_func(x=1)
print("x_return: {}".format(x_return))
# 如果x=2
print("\n\n")
x_return = my_func(x=1)
print("x_return: {}".format(x_return))
修饰器func就是要修饰的函数, 里面的decorator()的参数和func的参数保持一致