装饰器
什么是装饰器
- 也是一种函数
- 可以接受函数作为参数
- 可以返回函数
- 接收一个函数,内部对其处理,然后返回一个新函数,动态的增强函数功能
- 将
c函数
在a函数
中执行,在a函数
中可以选择执行或不执行c函数
,也可以对c函数
的结果进行二次加工处理
装饰器的定义
代码语言:javascript
复制def out(func_args): 外围函数
def inter(*args, **kwargs): 内嵌函数
reture func_args(*args, **kwargs)
return inter 外围函数返回内嵌函数
装饰器的用法
- 将
被调用的函数
直接作为参数
传入装饰器
的外围函数括弧
- 将装饰器与被调用函数绑定在一起
@符号 装饰器函数
放在被调用函数的上一行 , 被调用的函数
正常定义 , 只需要直接调用
被执行函数即可
代码
代码语言:javascript
复制# coding:utf-8
def check_str(func):
print('func:', func)
def inner(*args, **kwargs):
print('args:', args, kwargs)
result = func(*args, **kwargs)
if result == 'ok':
return 'result is %s' % result
else:
return 'result is failed:%s' % result
return inner
@check_str
def test(data):
return data
result = test(data='no')
print(result)
result = test('ok')
print(result)