`

python:装饰器

阅读更多
装饰器

    1、特点:装饰器的作用就是为已存在的对象添加额外的功能,特点在于不用改变原先的代码即可扩展功能;

  2、使用:装饰器其实也是一个函数,加上@符号后放在另一个函数“头上”就实现了装饰的功能,
执行被装饰的函数时,其实相当于func(*args, **kwargs) = decorator(func)(*args, **kwargs);

  3、基本原理:在加载装饰器时,也就是加载到@符时,会运行一次装饰器(也就是被@后的函数),
它的返回值会替代被装饰的函数地址,而被装饰的函数的地址以装饰器函数参数的形式传进了装饰器。
如下示例中:加载到@decorator时,运行了一次decorator()函数,这时函数hello()把函数名
(也就是函数地址hello)作为装饰器参数func传了进去,decorator()执行完后返回函数inner()的函数地址,
这个函数地址替代了函数hello()的函数地址,当执行hello('Jom')时,就会执行替换后的函数,即inner('Jom'),
然后就会去执行inner()函数内的内容。

def decorator(func):
print('hello python!')
def inner(name):
print('hello, my friend') 
func(name)

return inner

@decorator
def hello(name):
print('hello %s!' % name)
    
hello('Jom')



传参:
def decorator_var(var1, var2):
print('decorator_var')

     # 装饰器的传参,就是在简单装饰器外面再套一层“壳子”
     # 并且加载到装饰器的时候,会自动执行decorator_var和decorator两个函数
def decorator(func):
print('decorator')
def inner(name):
print(var1, var2)
func(name)

return inner
return decorator

@decorator_var('Python', '36')
def hello(name):
print('hello %s!' % name)

hello('Jom')
分享到:
评论

相关推荐

    Python:Python高级特性:装饰器与迭代器

    ### Python高级特性详解:装饰器与迭代器 #### 一、装饰器 ##### 1.1 装饰器的概念 装饰器是Python语言中一项非常强大的特性,它允许开发者在不修改原始函数代码的基础上,为其添加新的功能或行为。简而言之,...

    Beginning Python:Using Python 2.6 and Python 3.1

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

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

    内容概要:本文详细介绍了Python中的两种高级特性——装饰器和迭代器。首先探讨了装饰器的基本概念、作用以及如何创建和使用装饰器,包括简单装饰器、带参数的装饰器、多重装饰器和类装饰器。接着介绍了迭代器的定义...

    Python高级特性详解:装饰器与迭代器的应用及内部机制

    内容概要:本文详细介绍了 Python 中的装饰器和迭代器两大高级特性。对于装饰器,讲解了基本概念、@语法糖、带参数的装饰器、多个装饰器的叠加使用及其内部工作原理;对于迭代器,阐述了迭代器与可迭代对象的区别、...

    Python装饰器模式学习demo

    Python装饰器是一种高级编程技巧,它允许我们修改或增强函数、方法或类的行为,而无需对原始代码进行任何更改。装饰器本质上是一个接收一个函数作为输入并返回一个新的函数的函数。这种设计模式在Python中非常常见,...

    Python之装饰器共6页.pdf.zip

    通过压缩包内的“赚钱项目”可能指的是使用Python装饰器实现的一些实际项目或者示例,比如上述提到的各种应用场景的实例代码,这些项目可以帮助读者加深对装饰器的理解,并将其应用到自己的项目中去。

    python类装饰器装饰方法通用编码模型分析.pdf

    python装饰器是一个用于封装函数、方法或类的代码的工具,用来显式指定管理它们的代码。一次编写,可用于多种不同的情况。在python 的流行框架中,装饰器应用越来越广泛。用类设计装饰器,可以利用实例属性保持装饰...

    Python的高级主题:生成器、装饰器和元编程.docx

    Python 高级主题:生成器、装饰器和元编程 生成器(Generators)是一种特殊的函数,它可以按需生成值,而不是一次性生成所有值。通过使用生成器,你可以节省内存并提高性能。生成器的工作原理是使用 yield 语句来...

    Python 装饰器实现DRY(不重复代码)原则

    Python装饰器是一种强大的编程工具,它能够帮助我们遵循DRY(Don't Repeat Yourself,不重复代码)原则,通过减少重复代码提高代码的可维护性和可读性。DRY原则是软件开发中的重要原则之一,它建议每一个程序逻辑都...

    Python3.5装饰器原理及应用实例详解

    通过本篇文章的学习,我们深入了解了Python装饰器的工作原理及其基本使用方法,并通过具体的示例掌握了如何利用装饰器来增强现有函数的功能。装饰器是Python编程中一项非常强大的工具,合理地运用装饰器可以使我们的...

    python——retry装饰器(csdn)————程序.pdf

    Python retry 装饰器详解 Python 语言中,retry 装饰器是一种非常有用的机制,能够帮助开发者在编写代码时,轻松地实现函数的重试机制。本文将对 Python 中的 retry 装饰器进行详细的讲解,包括其定义、使用方法、...

    PYTHON学习教程资源:装饰器知识点学习讲解(含代码练习题).docx

    PYTHON学习教程资源:装饰器知识点学习讲解(含代码练习题) 在本篇文章中,我们将学习Python中的装饰器(Decorator),它是一种高阶函数,可以在不修改原函数的情况下,动态地增加函数的功能。 首先,我们需要...

    Fundamentos-Python:Python基础课程的源代码存储库

    10. **装饰器**:装饰器允许你在不修改原函数代码的情况下,添加额外的功能,如性能计时、日志记录或权限检查。 在"Fundamentos-Python-master"这个压缩包中,你可能会找到与以上知识点相关的练习和示例代码。通过...

    《自学Python:编程基础、科学计算及数据分析》读书笔记模板.pptx

    * 装饰器 * 上下文管理器与with语句 * 变量作用域 章节4:Python标准库 * 系统相关:sys模块 * 与操作系统进行交互:os模块 * 字符串相关:string模块 * 正则表达式:re模块 * 日期时间相关:datetime模块 * 更好...

    Python装饰器详解:函数增强的利器

    在Python编程中,装饰器是一种非常强大的工具,它允许程序员在不修改原有函数代码的情况下,给函数添加新的功能。装饰器本质上是一个函数,它接受一个函数作为参数并返回一个新的函数。这种设计模式使得装饰器成为...

    装饰器---python.pdf

    本篇文章将深入剖析Python装饰器的引入、作用、定义方法、以及如何应用装饰器进行实际编程。 首先,装饰器是面向对象编程中的一个概念,在其他编程语言中,装饰模式通常需要通过类的继承或者组合来实现。然而,...

    Python装饰器限制函数运行时间超时则退出执行

    ### Python装饰器限制函数运行时间超时则退出执行 在实际开发过程中,有时我们需要对某些函数的执行时间进行限制,即如果一个函数的执行超过了预设的时间,那么该函数将被强制停止执行,以避免长时间的阻塞或不必要...

    python装饰器详解,python装饰器笔记心得.doc

    "Python装饰器详解" Python装饰器是程序开发中经常会用到的一个功能,用好了装饰器,开发效率如虎添翼。这也是Python面试中必问的问题。但对于好多初次接触这个知识的人来讲,这个功能有点绕,自学时直接绕过去了,...

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

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

Global site tag (gtag.js) - Google Analytics