`

python小例子之8 -- decorator的使用

 
阅读更多

文章源自:http://bluecrystal.iteye.com/blog/137462

python小例子之8 -- decorator的使用

主题: decorator的使用

 

环境: winxp pro + sp2 + python2.5
备注: 请注意,凡是在源代码文件中使用了中文字符,请最好保存为utf-8格式

 

              本文与另外一篇blog文章内容相关:python中如何简单的实现decorator模式--由django admin源码所得体会 

 

              本文就是因kdekid 在该blog回帖后,我对python decorator的使用整理出的一点心得,在上述提及的blog中的代码亦可修改为本文所描述的方式,各位同学可自己试试 :)

              具体的语法描述可参考: python manuals -- Language Reference -- 7.Compound statements -- 7.6 Function definitions 

    # decorator_arg.py   
      
    # 修饰函数       
    def decorator(fun):       
        def ifun(*args, **kwargs):       
            args = (i+1 for i in args)       
            return fun(*args, **kwargs)       
        return ifun       
      
    def decorator1(arg):   
        def _decorator1(fun):   
            def ifun(*args, **kwargs):   
                args = (i+arg for i in args)   
                return fun(*args, **kwargs)   
            return ifun   
        return _decorator1   
      
    # 被修饰函数1   
    @decorator   
    def fun1(x,y,z):       
        return x+y+z       
      
    arg = 2   
    # 被修饰函数2   
    @decorator1(arg)   
    def fun2(x,y,z):   
        return x+y+z   
          
    # 测试代码       
    a = 3       
    b = 4       
    c = 5   
      
    print fun1(a,b,c)   
    print fun2(a,b,c)   

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    decorator python(decorator-3.4.0.tar.gz).rar

    要使用这个模块,首先需要解压`decorator-3.4.0.tar.gz`,然后按照标准的Python安装流程进行安装,如`pip install .`或者手动将模块添加到项目环境中。 总之,装饰器是Python中一个非常重要的特性,它提高了代码的...

    faif python-patterns 使用Python实现一些设计模式的例子

    抽象工厂模式为一个产品族提供统一的接口,让客户端可以无须关心具体的产品实现,只关注于产品的使用。在Python中,通常通过接口定义和具体实现类来构建抽象工厂。 4. **建造者模式(Builder)**: 建造者模式将...

    Python库 | json_log_decorator-2.0.0.tar.gz

    《Python库解析:json_log_decorator-2.0.0》 在编程领域,尤其是Python社区,库是开发者的重要工具,它们提供了预定义的功能,帮助我们更高效地编写代码。今天我们要探讨的是一个名为`json_log_decorator`的Python...

    python3-cookbook-master

    《Python3 Cookbook》是Python编程领域的一本经典之作,尤其对于初学者和希望提升技能的开发者来说,它提供了丰富的实践示例和实用技巧。这本书涵盖了Python3的各种核心特性,包括数据结构、算法优化、函数式编程、...

    decorator-4.1.2.rar ,亲测可用

    总结来说,`decorator-4.1.2`是一个强大且易于使用的Python库,为开发者提供了创建和管理装饰器的强大工具。通过正确地使用它,我们可以提高代码的可读性和可维护性,同时实现灵活的功能扩展。无论是初学者还是经验...

    Python库 | wrapt-1.13.0-cp39-cp39-win_amd64.whl

    在Python中,使用`@decorator`语法糖可以方便地应用装饰器。然而,标准的Python装饰器存在一些限制,例如无法跟踪被装饰函数的元信息,这可能导致调试和日志记录困难。wrapt库解决了这些问题,提供了对装饰器更深入...

    python-base.py: 千行代码入门Python python-visual.py: 15张图入门Matplotlib

    python_oneline.py: 几个小例子告诉你, 一行Python代码能干哪些事 python_requests.py: Python中最好用的爬虫库Requests代码实例 python_functional.py: Python进阶: 函数式编程实例(附代码) python_decorator.py:...

    Decorator-3.4.0

    "Decorator-3.4.0" 是一个Python装饰器库的版本,提供了方便和灵活的方式来创建装饰器。这个版本的压缩包文件名为"decorator-3.4.0.tar.gz",它是一个常见的归档格式,用于存储和分发源代码。 在Python中,装饰器...

    python decorator==4.4.2

    在`decorator-4.4.2`这个库中,我们可以找到更高级和灵活的装饰器实现,它提供了如`@wraps`(保留被装饰函数元信息)、`@cached_property`(用于创建缓存属性)等实用工具。这些工具可以帮助我们在Odoo开发中编写...

    Python库 | nbverbose-0.0.5-py3-none-any.whl

    nbverbose通常通过装饰器(decorator)来使用,这样可以轻松地为你的函数添加日志记录功能。 三、使用示例 下面是一个简单的使用nbverbose的例子: ```python from nbverbose import verbose @verbose def long_...

    python实现Decorator模式实例代码

    本文研究的主要是python实现Decorator模式,具体介绍如下。 一般来说,装饰器是一个函数,接受一个函数(或者类)作为参数,返回值也是也是一个函数(或者类)。首先来看一个简单的例子: # -*- coding: utf-8 -*- ...

    PyPI 官网下载 | python-overload-0.0.1.tar.gz

    本文将深入探讨`python-overload-0.0.1.tar.gz`这个压缩包中的`overload`库,了解它的功能、使用方法以及在实际编程中的应用。 `overload`库是Python类型注解的一个扩展,主要用于提供函数重载功能。在静态类型语言...

    python中完善decorator共5页.pdf.zip

    这个“python中完善decorator共5页.pdf.zip”文件很可能是关于深入理解和高效使用Python装饰器的教程,包含5页详细内容。以下是对Python装饰器及相关知识点的详细解释: 1. **装饰器的基本概念**:装饰器本质上是一...

    python中编写无参数decorator共4页.pdf

    本资料"python中编写无参数decorator共4页.pdf"可能详细介绍了如何创建和使用不接受任何参数的简单装饰器。 首先,让我们理解装饰器的基本结构。一个无参数的装饰器通常如下所示: ```python def decorator...

    Python-switchcase用纯Python实现的SwitchCase结构

    在更复杂的场景下,可能需要结合`if-elif-else`语句或者使用元类(metaclass)和装饰器(decorator)来实现更复杂的逻辑。 在"switchcase-master"这个项目中,开发者可能通过不同的设计模式或者高级技巧进一步优化...

    Python库 | wrapt-1.13.3-cp35-cp35m-manylinux1_x86_64.whl

    **Python库wrapt详解** ...总的来说,wrapt库为Python开发者提供了强大的工具,使得装饰器的使用更加灵活高效,对于编写高质量的Python代码,尤其是在处理复杂的后端逻辑时,wrapt库是一个不可或缺的资源。

    python中编写带参数decorator共5页.pdf

    Python中的装饰器是一种强大的工具,它允许我们修改或增强函数、类或其他可调用对象的行为,而无需修改它们的源代码。...理解并熟练掌握带参数装饰器的使用,对于提升Python编程技能和解决实际问题具有重要意义。

    设计模式专题之(七)装饰模式---设计模式装饰模式示例代码(python--c++)

    让我们先从Python开始,通过`Decorator.py`文件中的示例来理解装饰模式。 在Python中,装饰器是一种特殊类型的函数,可以用来修改其他函数的功能或行为。装饰器函数接收一个函数作为参数,并返回一个新的函数。以下...

    分析Python中设计模式之Decorator装饰器模式的要点

    Python的语法糖`@`使得装饰器的使用更为简洁。例如,`@log_wrapper`等同于`wrap_test = log_wrapper(test)`,它自动将`log_wrapper`应用到`test`函数上。 下面是一个简单的装饰器例子,展示了如何给函数添加日志...

    python装饰器简介---这一篇也许就够了(推荐)

    return 'hello python decorator' ret = test() print(ret) ``` 这段代码的执行流程如下: 1. 首先执行`makeItalic(test)`,返回一个新的函数。 2. 然后执行`makeBold(返回的新函数)`,再次返回一个新的函数。 3...

Global site tag (gtag.js) - Google Analytics