decorator的练习
来源:互联网 发布:ubuntu mate 树莓派 编辑:程序博客网 时间:2024/06/08 15:45
在廖雪峰老师那里学习中遇到的题目
请编写一个decorator,能在函数调用的前后打印出'begin call'
和'end call'
的日志。
再思考一下能否写出一个@log
的decorator,使它既支持:
@logdef f(): pass
又支持:
@log('execute')def f(): pass
第一题
def log(func): def wrapper(*args, **kw): print 'begin call' func(*args, **kw) print 'end call' return wrapper@logdef now(): print 'this func'
第二题
def log1(*text): def decorator(func): def wrapper(*args, **kw): print '%s %s():' % (text, func.__name__) return func(*args, **kw) return wrapper return decorator@log1('execute')def now1(): print '2013-12-25'print now1()
毕竟刚接触Python,第二个感觉有点怪怪的,如果大家有更好的想法可以直接提出来。
阅读全文
0 0
- decorator的练习
- python学习--decorator练习
- Decorator 解决的问题
- Python:decorator的使用
- decorator的使用
- python 的decorator
- Python的@符号 --decorator
- 【Python】decorator的作用
- 关于decorator 的理解
- Python的decorator使用
- python decorator的理解
- Decorator
- decorator
- Decorator
- Decorator
- Decorator
- Decorator
- Decorator
- 大话设计模式——》用java代码实现
- redis windows下的环境搭建
- Mockito InjectMocks字段无法注入其他InjectMocks字段的解决办法
- NODE属性说明
- 第一篇
- decorator的练习
- Java中常见的设计模式 单例模式
- iOS11开发新增功能大全
- 迭代器模式--更高、更快、更强(行为模式09)
- SLF4J简介与使用(整合log4j)
- 免费申请SSL证书及搭建HTTPS网站
- 自动部署Ambari到集群的自动化脚本
- gradle的学习与实践记录(一)
- ARKit从入门到精通(1)-ARKit初体验