python装饰器
装饰器
装饰器的本质: 就是不改变被装饰函数的代码以及原来函数的调用方式,增加新的功能
- 简单不带参数的装饰器
def fun(fn):
def inner():
print('开始前')
fn()
print('结束后')
return inner
@fun
def test():
print('test')
test()
- 带参数的装饰器函数
def wrapper(fn):
def inner(*args, **kwargs):
# 执行被装饰函数之前的操作
print('手机有网')
ret = fn(*args, **kwargs) # 真正执行原来的代码
# 执行被装饰函数之后的操作
return ret
return inner
@warpper # 等于func = wrapper(func) # inner
def func(tools):
print("使用%s上课" % tools)
return "成功了"
print(func("手机"))

浙公网安备 33010602011771号