`
rstevens
  • 浏览: 95695 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python学习: Python的装饰器

阅读更多
1、 什么是装饰器
装饰器是对函数的修饰,形式如下:

@decorator(deco_args)
def func(func_args):
    pass



它等价于
func = decorator(func)



调用 func() 相当于 decorator(func)()

也就是先调用 decorator, 并将 func 作为参数传递, decorator 进行一些装饰性处理,然后返回一个新的函数对象。 该函数对象必须与 func() 使用相同的参数形式
然后以传递给 func() 的参数,调用这个新的函数对象。

2、 带参数的装饰器
装饰器注意事项
当第一次调用一个被装饰的函数时,执行装饰它的函数的代码,并返回一个新的函数对象
此后对该装饰函数的调用,都不再执行 decorator 代码,而是直接用之前返回的那个函数对象


在 python 里面,当我们执行一个函数的时候,首先要创建一个函数对象,然后执行之; 函数对象只被创建一次,此后对该函数的调用,不用再创建


分享到:
评论
发表评论

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

相关推荐

    Python编程三剑客第3版:Python编程从入门到实践第3版快速上手第.pptx

    7. 装饰器:包括装饰器的定义、使用和注意事项等。 8. 生成器:包括生成器的定义、使用和注意事项等。 9. 上下文管理器:包括上下文管理器的定义、使用和注意事项等。 10. 泛型编程:包括泛型编程的基本概念、...

    最经典的Python教程:Python基础教程(第3版)

    此外,还将探讨Python中的装饰器和上下文管理器,它们是实现代码复用和管理资源的有效工具。 Python的标准库非常丰富,教程会讲解一些常用模块,如os、sys、math、datetime、random等,它们提供了各种操作系统的...

    《Python学习手册:第4版(中文)》part1

    作者 Mark Lutz 《Python学习手册:第4版》包括以下内容: 学习Python的主要内建对象类型:数字、列表和字典。 使用Python语句创建和处理对象,并且...了解包括装饰器、描述器、元类和Unicode处理等高级Python工具。

    《Python学习手册:第4版(中文)》part2

    作者 Mark Lutz 《Python学习手册:第4版》包括以下内容: 学习Python的主要内建对象类型:数字、列表和字典。 使用Python语句创建和处理对象,并且...了解包括装饰器、描述器、元类和Unicode处理等高级Python工具。

    Python装饰器模式学习demo

    在"Python装饰器学习demo"中,我们可以探索以下几个关键知识点: 1. **基础装饰器**:装饰器的基本形式是一个接收函数并返回新函数的函数。例如: ```python def simple_decorator(func): def wrapper(): print(...

    Python基础语法 Python数据类型与结构 Python函数与模块 面向对象编程在Python中的应用 Python异常处

    Python高级特性:装饰器与迭代器 Python数据库操作:SQLAlchemy Python与Web开发:Flask框架 Python与Web开发:Django框架 Python数据分析:Pandas库 Python数据可视化:Matplotlib与Seaborn Python机器学习基础:...

    Python学习手册_第四版

    Google和YouTube由于Python的高可适应性、易于维护以及适合于快速开发而采用它。如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,...了解包括装饰器、描述器、元类和Unicode处理等高级Python工具。

    Python学习手册(第4版)

    完整版PDF电子书下载 带索引书签目录高清版。绝对的完整、高清,有目录,带索引书签。 由于资源过大,分成2部分上传,解压时必须同时下载2部分资源。 此资源仅供学习使用,请勿做商业..., 了解包括装饰器、描述器、元

    Beginning Python:Using Python 2.6 and Python 3.1

    - **装饰器**:介绍装饰器的概念及其实现方式。 - **迭代器与生成器**:探讨迭代器与生成器的区别及其应用场景。 #### 十一、模块构建(第10章) - **模块的概念**:解释模块的概念及其在Python中的作用。 - **...

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

    python_base.py: 千行代码入门Python python_visual.py: 15张图入门Matplotlib python_visual_animation.py: 使用Matplotlib画...python_decorator.py: Python进阶: 通过实例详解装饰器(附代码) python_datetime.p

    Python属性魔法:属性装饰器的神奇用法

    这使得Python被认为是一种易于学习的语言,同时具备强大的功能,适合初学者和经验丰富的程序员。 Python的主要特点包括: 1. **易于学习**:Python有相对较少的关键字,结构简单,和一个明确定义的语法。 2. **...

    Python高级特性深入解析:装饰器与迭代器的应用

    内容概要:本文详细介绍了Python中的两...阅读建议:边学习边实践是最佳的学习方式,可以通过自己动手编写装饰器和迭代器来加深对这些高级特性的理解。建议读者跟随文档中的示例进行练习,体会这些特性的实际应用效果。

    Python学习手册(原书第4版)- (美)MarkLutz

    Google和YouTube由于Python的高可适应性、易于维护以及适合于快速开发而采用它。如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,...了解包括装饰器、描述器、元类和Unicode处理等高级Python工具。

    Python编程:从入门到实践 (1)_python教程_Python入门_.zip

    4. **函数式编程**:高阶函数、闭包、装饰器等概念,以及如何利用它们提高代码的效率和可读性。 5. **项目实战**:设计并实现一个完整的项目,比如创建一个简单的Web应用、数据分析工具或者游戏,以锻炼实际编程...

    编程语言+Python+全套教程

    Python高级特性:装饰器与迭代器 Python数据库操作:SQLAlchemy Python与Web开发:Flask框架 Python与Web开发:Django框架 Python数据分析:Pandas库 Python数据可视化:Matplotlib与Seaborn Python机器学习基础:...

    《Python学习手册》示例代码.zip

    10. **高级话题**:可能包含装饰器、生成器、上下文管理器、元编程等,这些都是Python进阶学习中的重要内容。 每个文件名“kwan1117”可能对应着书中的一个主题或章节,通过逐一解压并运行这些代码,你可以逐步跟随...

    Python学习手册(原书第4版)

    学习Python的主要内建对象类型:数字、列表和字典。使用Python语句创建和处理对象,并且学习Python的通用语法模型。使用函数构造和重用代码,函数是...了解高jiPython工具,如装饰器、描述器、元类和Unicode处理等。

    《Python编程:从入门到实践》配套资源翻译.rar

    同时,文件可能还会涵盖一些高级主题,如装饰器、上下文管理器以及生成器,这些都是Python的特色特性,能够提高代码的效率和可读性。 最后,书中可能会讨论如何编写测试用例,使用unittest或pytest等库进行单元测试...

Global site tag (gtag.js) - Google Analytics