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__
    

 

目录
相关文章
|
2月前
|
测试技术 Python
解释Python中的装饰器链(Decorator Chaining)。
解释Python中的装饰器链(Decorator Chaining)。
18 6
|
3月前
|
缓存 测试技术 Python
Python小知识 - 1. Python装饰器(decorator)
Python小知识 - 1. Python装饰器(decorator)
|
Python
Python:decorator装饰器的使用示例
Python:decorator装饰器的使用示例
|
Python
Python编程:decorator装饰器
Python编程:decorator装饰器
|
Python
Python:decorator装饰器的使用示例
Python:decorator装饰器的使用示例
99 0
|
Python
Python知识点:理解和使用装饰器 @decorator
Python的装饰器(decorator)是一个很棒的机制,也是熟练运用Python的必杀技之一。装饰器,顾名思义,就是用来装饰的,它装饰的是一个函数,保持被装饰函数的原有功能,再装饰上(添油加醋)一些其它功能,并返回带有新增功能的函数对象,所以装饰器本质上是一个返回函数对象的函数(确切的说,装饰器应该是可调用对象,除了函数,类也可以作为装饰器)。
1472 0
|
Python 设计模式
|
缓存 Python 自然语言处理
Python Decorator 和函数式编程
来源:https://www.oschina.net/translate/decorators-and-functional-python Python Decorator 和函数式编程 英文原文:Decorators and Functional Python Decorators 是Python中最重要的特性之一. 它除了使Python更好用外的, 它还能帮助我们以一
1399 0
|
7天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。

热门文章

最新文章