如果你接触 Python 有一段时间了的话,想必你对 @ 符号一定不陌生了,没错 @ 符号就是装饰器的语法糖。

装饰器的使用方法很固定:

先定义一个装饰函数(帽子)(也可以用类、偏函数实现)

再定义你的业务函数、或者类(人)最后把这顶帽子带在这个人头上

Python装饰器就是用于拓展原来函数功能的一种函数,目的是在不改变原函数名(或类名)的情况下,给函数增加新的功能。

这个函数的特殊之处在于它的返回值也是一个函数,这个函数是内嵌“原“”函数的函数。

# 有两个已经实现的方法

def f1():

print("正常流程1")

def f2():

print("正常流程2")

# 一、需求 我们在每个方法内部加入一个需求

# 定义了一个函数f3,它的参数是一个函数,然后给这个函数嵌入print("需求")。但是想要拓展这一千万个函数功能,

# 就是要执行一千万次f3()函数,所以这样并不理想!接下来,我们可以试着用装饰器来实现,先看看装饰器最原始的面貌。

def f3():

print("需求")

def f1():

f3()

print("正常流程1")

def f2():

f3()

print("正常流程2")

# 二、需求 我们现在不需要之前的那个需求了 需要删除f3()

def f1():

print("正常流程1")

def f2():

print("正常流程2")

# 根据 python开放-封闭的原则,有些时候核心代码并不可以直接去改,所以在不改动原代码的情况下,我们可以再定义一个函数

# 这里的f3函数就是最原始的装饰器,它的参数是一个函数,然后返回值也是一个函数。

#

# 其中作为参数的这个函数f1()就在返回函数f4()的内部执行。然后在函数f1()前面加上@f3,

#

# f1()函数就相当于注入增加“需求”功能,现在只要调用f1(),它就已经变身为增加“需求”的函数了,

# (不需要重复执行原函数)。

def f3(fn):

def f4():

print("需求")

fn()

return f4

@f3

def f1():

print("正常流程1")

python装饰器简单理解_python装饰器的简单理解相关推荐

  1. python装饰器理解_Python装饰器理解(新手)

    本文介绍Python其中一个功能--装饰器 只做简单介绍, 可以帮助新手理解装饰器, 没有完整的装饰器代码 装饰器本质上就是一个函数,在不修改源代码,调用方法的前提下,用来给其他函数添加功能的函数 知 ...

  2. python装饰器的通俗理解_python装饰器的通俗理解

    在学习Python的过程中,我相信有很多人和我一样,对Python的装饰器一直觉得很困惑,我也是困惑了好久,并通过思考和查阅才能略有领悟,我希望以下的内容会对你有帮助,我也努力通过通俗的方式使得对Py ...

  3. 装饰器python的通俗理解_Python装饰器的通俗理解

    在学习Python的过程中,我相信有很多人和我一样,对Python的装饰器一直觉得很困惑,我也是困惑了好久,并通过思考和查阅才能略有领悟,我希望以下的内容会对你有帮助,我也努力通过通俗的方式使得对Py ...

  4. python装饰器理解_python装饰器理解

    现在我们来看看如何从一些最基础的方式来理解Python的装饰器.英文讨论参考Here. 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等.装饰器是解 ...

  5. python中装饰器的作用_Python装饰器详解,详细介绍它的应用场景

    装饰器的应用场景附加功能 数据的清理或添加:函数参数类型验证 @require_ints 类似请求前拦截数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改为函数提供额外的数据 moc ...

  6. python中的装饰器怎么运行_Python 装饰器入门(上)

    翻译前想说的话: 这是一篇介绍python装饰器的文章,对比之前看到的类似介绍装饰器的文章,个人认为无人可出其右,文章由浅到深,由函数介绍到装饰器的高级应用,每个介绍必有例子说明.文章太长,看完原文后 ...

  7. python自带装饰器详解_Python装饰器详解

    引言 装饰器简单来说是我们向一个现有的已经存在的函数或对象添加新的功能,同时呢我们又不用改变他现有的结构. 为什么我们需要装饰器 我们假设你的程序实现了say_hello()和say_goodbye( ...

  8. python装饰器与闭包_Python 装饰器和闭包

    Python 装饰器和闭包 装饰器是 Python 中常见的语法糖,这篇文章讲了闭包和装饰器的原理,并且分析了函数中变量的作用域,以及尝试总结了常见的坑. 装饰器基础 首先来看看装饰器的定义:装饰器本 ...

  9. python装饰器参数讲解_python装饰器的详细解析

    写在前面: python装饰器(fuctional decorators)就是用于拓展原来函数功能的一种函数,目的是在不改变原函数名(或类名)的情况下,给函数增加新的功能. 这个函数的特殊之处在于它的 ...

  10. python装饰器应用论文_Python装饰器的应用场景代码总结

    装饰器的应用场景 附加功能 数据的清理或添加: 函数参数类型验证 @require_ints 类似请求前拦截 数据格式转换 将函数返回字典改为 json/YAML 类似响应后篡改 为函数提供额外的数据 ...

最新文章

  1. mysql索引有哪些_MySQL索引是个什么东西
  2. 实时计算框架 Flink 新方向:打造「大数据+AI」 未来更多可能
  3. hihocoder #1333 : 平衡树·Splay2
  4. 对实体 characterEncoding 的引用必须以 ';' 分隔符结尾
  5. Java 动态代理机制分析及扩展,第 1 部分
  6. 桂林电子科技大学 计算机学院,桂林电子科技大学信息科技学院
  7. 第四范式入围Gartner新兴技术与趋势影响力雷达全球代表厂商
  8. HTTP header中的 Cache-control
  9. Linux怎么更改声音板卡顺序,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  10. 日常生活开支记账明细_花钱如流水?拥有这两款记账APP,1年能省1万块!
  11. Numpy之Broadcasting
  12. Ignite Compute helloworld-分布式计算
  13. linux查看网卡硬件 lsw,无人值守网络安装Linux系统
  14. (原创)一个简洁通用的调用DLL函数的帮助类
  15. iOS多线程技术—多线程简单介绍
  16. 《你的灯亮着吗?》 读后感
  17. Windows XP SP3需要安装KB888111补丁解决方法
  18. 51单片机基本工作引脚
  19. centos8安装smplayer
  20. UE5 Metahuman使用Live Link Face动画不匹配的问题修复

热门文章

  1. HGsoft-downloader
  2. docker host and docker container
  3. 【db】mongodb的故事
  4. 向圣诞老人和他的精灵学习Google Analytics(分析)
  5. python matplotlib图中插入表格
  6. oracle伪列ROWNUMBER,oracle 中 rownum 和 row_number()
  7. Python中的一些特殊函数
  8. HTML/CSS进阶
  9. Hive SQL 分析函数
  10. SSH详解以及免密登录配置,深入理解