“Python函数修饰符@”的版本间的差异
跳到导航
跳到搜索
(创建页面,内容为“python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等。 创建函数修饰符的规则…”) |
|||
第1行: | 第1行: | ||
− | python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等。 | + | =python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等。= |
创建函数修饰符的规则: | 创建函数修饰符的规则: | ||
第7行: | 第7行: | ||
(4)修饰符维护被维护函数的签名 | (4)修饰符维护被维护函数的签名 | ||
− | 例子1:被修饰函数不带参数 | + | =例子1:被修饰函数不带参数= |
<pre> | <pre> | ||
第29行: | 第29行: | ||
test .. | test .. | ||
log结束 ... | log结束 ... | ||
+ | </pre> | ||
+ | =例子2:使用functools模块提供的修改函数属性的方法wraps= | ||
+ | <pre> | ||
+ | def log(func): | ||
+ | def wrapper(): | ||
+ | print('log开始 ...') | ||
+ | func() | ||
+ | print('log结束 ...') | ||
+ | return wrapper | ||
+ | |||
+ | @log | ||
+ | def test1(): | ||
+ | print('test1 ..') | ||
+ | |||
+ | def test2(): | ||
+ | print('test2 ..') | ||
+ | |||
+ | print(test1.__name__) | ||
+ | print(test2.__name__) | ||
</pre> | </pre> |
2021年6月29日 (二) 08:10的版本
python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等。
创建函数修饰符的规则: (1)修饰符是一个函数 (2)修饰符取被修饰函数为参数 (3)修饰符返回一个新函数 (4)修饰符维护被维护函数的签名
例子1:被修饰函数不带参数
def log(func): def wrapper(): print('log开始 ...') func() print('log结束 ...') return wrapper @log def test(): print('test ..') test() 运行结果: log开始 ... test .. log结束 ...
例子2:使用functools模块提供的修改函数属性的方法wraps
def log(func): def wrapper(): print('log开始 ...') func() print('log结束 ...') return wrapper @log def test1(): print('test1 ..') def test2(): print('test2 ..') print(test1.__name__) print(test2.__name__)