开发者社区> zengjf> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Python Decorator

简介: /********************************************************************************* * Python Decorator * 说明: * 最近要处理markdown文档,想使用mkdocs来做实时修改显示,但其界面的pages设定 * 总让我这边不是很舒服,不能隐藏,所以打算看一下其源代码,看能不能隐藏,先学习 * 一下Python修饰器的语法,原因是源代码里面用到了修饰器。
+关注继续查看
/*********************************************************************************
 *                              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 "<p>{0}</p>".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 <p>lorem ipsum, John dolor sit amet</p>

三、示例2:
    from functools import wraps

    def tags(tag_name):
        def tags_decorator(func):
            @wraps(func)
            def func_wrapper(name):
                return "<{0}>{1}</{0}>".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__
    

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python:decorator装饰器的使用示例
Python:decorator装饰器的使用示例
58 0
《Python极客项目编程 》——2.3 代码
本节书摘来自异步社区《Python极客项目编程 》一书中的第2章,第2.3节,作者 [美] Mahesh Venkitachalam,王海鹏 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.3 代码 首先,定义类Sipro,来绘制这些曲线。
2772 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Python系列直播第一讲——Python中的一切皆对象
立即下载
Python 脚本速查手册
立即下载
Python第五讲——关于爬虫如何做js逆向的思路
立即下载