Python装饰器
来源:互联网 发布:问道手游辅助软件 编辑:程序博客网 时间:2024/05/21 18:00

什么是装饰器
Python中的装饰器本质上就是在不改变函数本身的情况下包装一个函数成为另一个函数的语法糖
装饰器简单示例
def wrapper(func): def inner(*args, **kwargs): print(func.__name__, *args, **kwargs) return func(*args, **kwargs) return inner@wrapperdef print_func(words): return wordsprint_func('Hello decorator!')

装饰器有什么用?
看起来好像很不错,那么装饰器有什么用呢?
在我看来本质上就是减少代码重复(Don’t repeat yourself),让代码的可读性更好!
需要缓存的地方使用示例
def get_article_detail(uid): article = ORM.get_article(uid) if article: cache.incr('key') return article
这样在访问文章的时候,每次都要在函数内累加浏览量,如果换成装饰方式呢?
def increase_page_view(func): def wrapper(*args, **kwargs): obj = func(*args, **kwargs) if obj: cache.incr(obj.id) return obj@increase_page_viewdef get_article_detail(uid): return ORM.get_article(uid)
这样原来的获取文章详情的函数,只关心获取文章,而累加浏览量的操作放到具体的装饰器函数中,提高代码的可读性
0 0
- python装饰器装饰类
- [python]python装饰器
- Python装饰器学习
- Python装饰器
- python 装饰器
- Python装饰器
- python 装饰器 应用
- python 装饰器2
- Python装饰器学习
- python装饰器
- python装饰器
- python 装饰器入门
- python装饰器
- python装饰器
- python 装饰器'@'
- python装饰器
- Python装饰器详解
- python 装饰器
- PHP微信支付接口开发
- opengl 入门学习路径
- centos7 ceph安装
- java反射机制详解 及 Method.invoke解释
- Swift Json 解析异常处理
- Python装饰器
- linux挂载ISO光盘镜像
- LAST_INSERT_ID(), LAST_INSERT_ID(expr)
- 抓包Fidder
- TabLayout+Fragment
- tomcat配置,通过域名访问指定项目
- shiro整合springmvc
- [转]如何更改AD域安全策略-密码必须符合复杂性要求
- jQuery学习总结