博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python Decorator
阅读量:6859 次
发布时间:2019-06-26

本文共 1706 字,大约阅读时间需要 5 分钟。

/********************************************************************************* *                              Python Decorator * 说明: *     最近要处理markdown文档,想使用mkdocs来做实时修改显示,但其界面的pages设定 * 总让我这边不是很舒服,不能隐藏,所以打算看一下其源代码,看能不能隐藏,先学习 * 一下Python修饰器的语法,原因是源代码里面用到了修饰器。 * *                                                2016-8-30 深圳 南山平山村 曾剑锋 *********************************************************************************/一、参考文档:    1. A guide to Python's function decorators        http://thecodeship.com/patterns/guide-to-python-function-decorators/    2. Python天天美味(34) - Decorators详解        http://www.cnblogs.com/coderzh/archive/2010/04/27/python-cookbook33-decorators.html    3. Python Decorator的来龙        https://segmentfault.com/a/1190000003719779    4. 装饰器        http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819879946007bbf6ad052463ab18034f0254bf355000二、示例1:    def p_decorate(func):       def func_wrapper(name):           return "

{0}

".format(func(name)) return func_wrapper @p_decorate def get_text(name): return "lorem ipsum, {0} dolor sit amet".format(name) print get_text("John") # Outputs

lorem ipsum, John dolor sit amet

三、示例2: from functools import wraps def tags(tag_name): def tags_decorator(func): @wraps(func) def func_wrapper(name): return "<{0}>{1}
".format(tag_name, func(name)) return func_wrapper return tags_decorator @tags("p") def get_text(name): """returns some text""" return "Hello "+name print get_text.__name__ # get_text print get_text.__doc__ # returns some text print get_text.__module__ # __main__

 

你可能感兴趣的文章
【Update】C# 批量插入数据 SqlBulkCopy
查看>>
剑指offer:合并两个排序的链表
查看>>
1602液晶显示实验
查看>>
HTTP慢速DOS(slow http denial of service attack)
查看>>
图片水印
查看>>
Quart2D的基本介绍
查看>>
Lua点号和冒号区别
查看>>
STL基础
查看>>
有没有人要贪吃蛇的代码,然而有....................
查看>>
Spring Data JPA 进阶
查看>>
linux的top命令参数详解
查看>>
spring常用注解
查看>>
Material Menu
查看>>
Win8 环境变量位置
查看>>
margin负值的应用总结
查看>>
分页查询
查看>>
iLBC
查看>>
Linux 本地yum源搭建和网络yum源搭建
查看>>
HDU 5781 ATM Mechine
查看>>
使用Nginx搭建Tomcat9集群,Redis实现Session共享
查看>>