文章源自:http://bluecrystal.iteye.com/blog/137462
python小例子之8 -- decorator的使用
主题: decorator的使用
环境: winxp pro + sp2 + python2.5
备注: 请注意,凡是在源代码文件中使用了中文字符,请最好保存为utf-8格式
备注: 请注意,凡是在源代码文件中使用了中文字符,请最好保存为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-3.4.0.tar.gz`,然后按照标准的Python安装流程进行安装,如`pip install .`或者手动将模块添加到项目环境中。 总之,装饰器是Python中一个非常重要的特性,它提高了代码的...
抽象工厂模式为一个产品族提供统一的接口,让客户端可以无须关心具体的产品实现,只关注于产品的使用。在Python中,通常通过接口定义和具体实现类来构建抽象工厂。 4. **建造者模式(Builder)**: 建造者模式将...
《Python库解析:json_log_decorator-2.0.0》 在编程领域,尤其是Python社区,库是开发者的重要工具,它们提供了预定义的功能,帮助我们更高效地编写代码。今天我们要探讨的是一个名为`json_log_decorator`的Python...
《Python3 Cookbook》是Python编程领域的一本经典之作,尤其对于初学者和希望提升技能的开发者来说,它提供了丰富的实践示例和实用技巧。这本书涵盖了Python3的各种核心特性,包括数据结构、算法优化、函数式编程、...
总结来说,`decorator-4.1.2`是一个强大且易于使用的Python库,为开发者提供了创建和管理装饰器的强大工具。通过正确地使用它,我们可以提高代码的可读性和可维护性,同时实现灵活的功能扩展。无论是初学者还是经验...
在Python中,使用`@decorator`语法糖可以方便地应用装饰器。然而,标准的Python装饰器存在一些限制,例如无法跟踪被装饰函数的元信息,这可能导致调试和日志记录困难。wrapt库解决了这些问题,提供了对装饰器更深入...
python_oneline.py: 几个小例子告诉你, 一行Python代码能干哪些事 python_requests.py: Python中最好用的爬虫库Requests代码实例 python_functional.py: Python进阶: 函数式编程实例(附代码) python_decorator.py:...
"Decorator-3.4.0" 是一个Python装饰器库的版本,提供了方便和灵活的方式来创建装饰器。这个版本的压缩包文件名为"decorator-3.4.0.tar.gz",它是一个常见的归档格式,用于存储和分发源代码。 在Python中,装饰器...
在`decorator-4.4.2`这个库中,我们可以找到更高级和灵活的装饰器实现,它提供了如`@wraps`(保留被装饰函数元信息)、`@cached_property`(用于创建缓存属性)等实用工具。这些工具可以帮助我们在Odoo开发中编写...
nbverbose通常通过装饰器(decorator)来使用,这样可以轻松地为你的函数添加日志记录功能。 三、使用示例 下面是一个简单的使用nbverbose的例子: ```python from nbverbose import verbose @verbose def long_...
本文研究的主要是python实现Decorator模式,具体介绍如下。 一般来说,装饰器是一个函数,接受一个函数(或者类)作为参数,返回值也是也是一个函数(或者类)。首先来看一个简单的例子: # -*- coding: utf-8 -*- ...
本文将深入探讨`python-overload-0.0.1.tar.gz`这个压缩包中的`overload`库,了解它的功能、使用方法以及在实际编程中的应用。 `overload`库是Python类型注解的一个扩展,主要用于提供函数重载功能。在静态类型语言...
这个“python中完善decorator共5页.pdf.zip”文件很可能是关于深入理解和高效使用Python装饰器的教程,包含5页详细内容。以下是对Python装饰器及相关知识点的详细解释: 1. **装饰器的基本概念**:装饰器本质上是一...
本资料"python中编写无参数decorator共4页.pdf"可能详细介绍了如何创建和使用不接受任何参数的简单装饰器。 首先,让我们理解装饰器的基本结构。一个无参数的装饰器通常如下所示: ```python def decorator...
在更复杂的场景下,可能需要结合`if-elif-else`语句或者使用元类(metaclass)和装饰器(decorator)来实现更复杂的逻辑。 在"switchcase-master"这个项目中,开发者可能通过不同的设计模式或者高级技巧进一步优化...
**Python库wrapt详解** ...总的来说,wrapt库为Python开发者提供了强大的工具,使得装饰器的使用更加灵活高效,对于编写高质量的Python代码,尤其是在处理复杂的后端逻辑时,wrapt库是一个不可或缺的资源。
Python中的装饰器是一种强大的工具,它允许我们修改或增强函数、类或其他可调用对象的行为,而无需修改它们的源代码。...理解并熟练掌握带参数装饰器的使用,对于提升Python编程技能和解决实际问题具有重要意义。
让我们先从Python开始,通过`Decorator.py`文件中的示例来理解装饰模式。 在Python中,装饰器是一种特殊类型的函数,可以用来修改其他函数的功能或行为。装饰器函数接收一个函数作为参数,并返回一个新的函数。以下...
Python的语法糖`@`使得装饰器的使用更为简洁。例如,`@log_wrapper`等同于`wrap_test = log_wrapper(test)`,它自动将`log_wrapper`应用到`test`函数上。 下面是一个简单的装饰器例子,展示了如何给函数添加日志...
return 'hello python decorator' ret = test() print(ret) ``` 这段代码的执行流程如下: 1. 首先执行`makeItalic(test)`,返回一个新的函数。 2. 然后执行`makeBold(返回的新函数)`,再次返回一个新的函数。 3...