python 装置器
来源:互联网 发布:淘宝千牛是什么 编辑:程序博客网 时间:2024/04/28 06:52
1 解决的问题
1 解决调用函数时想使用额外的附加条件时的复用问题2 解决函数属性发生改变的问题
2 代码
import loggingdef use_logging(func): def wrapper(*args,**kwargs): logging.warn("%s in running" % func.__name__) return func(*args,**kwargs) return wrapperdef bar(): print ("i am bar")bar =use_logging(bar)print bar()print "bar.__name__",bar.__name__@use_loggingdef foo(): print "i am foo"print foo()print "foo.__name__",foo.__name__from functools import wrapsdef logged(func): @wraps(func) def with_logging(*args,**kwargs): print func.__name__ + " was called" return func(*args,**kwargs) return with_logging@loggeddef f(x): return x+x*xprint f(1)print "f.__name__",f.__name__============== 结果==============i am barWARNING:root:bar in runningNoneWARNING:root:foo in running #解决调用函数时想使用额外的附加条件时的复用问题bar.__name__ wrapper #解决函数属性发生改变的问题i am fooNonefoo.__name__ wrapper #解决函数属性发生改变的问题f was called #解决调用函数时想使用额外的附加条件时的复用问题2f.__name__ f #解决函数属性发生改变的问题
参考https://www.zhihu.com/question/26930016
阅读全文
0 0
- python 装置器
- PHPUnit袖珍指南 第六章 装置器
- PHPUnit袖珍指南 第六章 装置器
- 紫外线杀菌器:紫外线杀菌装置的工作原理
- 紫外线杀菌装置:Aquafine紫外线杀菌器 Aquafine CSL系列
- 紫外线杀菌装置:过流式Photoscience紫外线杀菌器
- 紫外线杀菌装置:小型全自动AQUABEST紫外线杀菌器
- 紫外线杀菌装置:浅析CRAXULTRA紫外线杀菌器的优势
- 紫外线杀菌器:紫外线杀菌装置的工作原理
- "第六感装置"
- 喷水装置
- 喷水装置
- 视听装置
- 喷水装置
- 喷水装置
- 喷水装置
- Duff装置
- Duff 装置
- IO流
- FileReader
- leetcode 198 House Robber
- RabbitMQ Consumer获取消息的两种方式(poll,subscribe)解析
- 环境变量PATH
- python 装置器
- ssh框架整合(xml版)
- orm模型思想
- 算法基础知识
- java设计模式学习—原型模式(Prototype)
- 浅析字符编码
- Mac-单机Hive安装与测试
- 指滑轮播图
- 大型分布式网站技术架构笔记(一)