资讯专栏INFORMATION COLUMN

python3常用3种装饰器词法归纳

89542767 / 224人阅读

  此篇文章主要是详细介绍了python3常用3种装饰器语法总结,文中根据实例编码为大家介绍得非常详尽,对大家学习培训和工作具有很强的参照参考意义,需用的小伙伴可以借鉴一下


  python3常用3种装饰器语法总结


  1.概述词法


  装饰器又称函数公式装饰器,主要是的作用是在没有改动原先函数的编码前提下(函数公式自身不被改动,实现方式都不转变),提升的另一个"装饰设计"函数公式,把原先的函数公式当作一个总体,像传参相同给函数公式应用,并回到这一"函数公式"。在这个过程中大家添加一些函数公式有关的编码,当函数公式强制执行时,便会一块儿实行,等同于让函数公式增强了更多作用。


  常见的层面:


  1.1为函数公式提升日志作用:大批量函数公式做题的时候,并没写日志作用,根据一致再加上日志的装饰器,就不需要变更编码,以此来实现记载的作用。


  1.2为函数公式完成认证作用:函数公式实行时,提升认证是不是合理合法的装饰器,它是某些安全对策,有时十分必需。


  1.3挽救函数公式作用:项目完工后,发觉重要BUG,能通过过提升装饰器的形式修补,大批量减少任务量。


  2.并没有主要参数函数的装饰器


  了解:标记便是写一段装饰器,最基本装饰器,便是写一个函数,并回到1个传到的主要参数。实质就是将整个函数公式当做了主要参数,并回到,这一过程并没有执行函数,只增强了1个叙述信息内容,如:我国。


  defmycountry(m):
  country="china"
  print(country)
  returnm
  mycountry
  defmyname():
  name="chengruofei"
  print(name)
  returnname
  myname()
  执行结果:
  pythonmyname.py
  china
  chengruofei


  备注名称:


  把标记理解为省去了首先的取值,是否会恍然大悟:


  myname=mycountry(myname)


  myname()


  3.带主要参数函数的装饰器


  **了解:**只需在装饰器函数中,提升一个函数,而且里边必须要组成传到的“2个主要参数”给新的函数公式,这时传参就会变成结构的函数公式。


  defmycountry(m):
  country="china"
  print(country)
  defmyb(bb):
  m(bb)
  print("TESTboy")
  returnmyb
  mycountry
  defmyname(b):
  name="chengruofei"
  print(name)
  print("Iama:",b)
  returnname
  myname("boy")
  执行结果:
  china
  chengruofei
  ('Iama:','boy')
  TESTboy


  备注名称:


  根据装饰器的函数返回值,就丢了。


  4.带主要参数装饰器


  **了解:**原本装饰器都是没有主要参数,主要参数是依据函数的概念是否去设置的。但是有的时候装饰器是一个繁杂的函数公式,结合了很多的作用,那就需要带到主要参数去行动适宜的装饰器函数公式。只需在原先的编译器表层再加上一层层函数公式,并把内层函数公式做为总体回到。


  defmyID(i):
  ifi=='mycountry':
  defmycountry(m):
  country="china"
  print(country)
  defmyb(bb):
  m(bb)
  print("TESTboy")
  returnmyb
  returnmycountry
  else:
  defmyschool(m):
  school="shijiazhuangjisuanjizhiyejishuxueyuan"
  print("Igraduatedfrom",school)
  defmyb(bb):
  m(bb)
  print("TESTboy")
  returnmyb
  returnmyschool
  myID('myschool')
  defmyname(b):
  name="chengruofei"
  print(name)
  print("Iama:",b)
  returnname
  myname("boy")


  执行结果:


  ('Iama:','boy')
  TESTboy


  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129028.html

相关文章

  • Python Closure

    摘要:在计算机科学中,闭包又称词法闭包或函数闭包,是引用了自由变量的函数。闭包被广泛应用于函数式语言中。运用闭包可以避免对全局变量的使用。将栈顶的元素取出,创建元组,并将该元组进栈。 在计算机科学中,闭包 又称 词法闭包 或 函数闭包,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。闭包被广泛应用于函数式语言中。 从上面这段话中可以看出闭...

    n7then 评论0 收藏0
  • python高级特性

    摘要:常规的使用来统计一段代码运行时间的例子输出结果总结其实是一门特别人性化的语言,但凡在工程中经常遇到的问题,处理起来比较棘手的模式基本都有对应的比较优雅的解决方案。 python的高级特性 名词与翻译对照表 generator 生成器 iterator 迭代器 collection 集合 pack/unpack 打包/解包 decorator 装饰器 context manager ...

    yexiaobai 评论0 收藏0
  • python

    Python装饰器为什么难理解? 无论项目中还是面试都离不开装饰器话题,装饰器的强大在于它能够在不修改原有业务逻辑的情况下对代码进行扩展,权限校验、用户认证、日志记录、性能测试、事务处理、缓存等都是装饰器的绝佳应用场景,它能够最大程度地对代码进行复用。 但为什么初学者对装饰器的理解如此困难,我认为本质上是对Py… Python 实现车牌定位及分割 作者用 Python 实现车牌定位及分割的实践。 ...

    chenatu 评论0 收藏0
  • 深入编译——第一部分:词法解析和Scanner(介绍ECMAScript的词法规范和TypeScr

    摘要:词法分析对构成源程序的字符流进行扫描然后根据构词规则识别单词也称单词符号或符号。语义分析是编译过程的一个逻辑阶段语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查进行类型审查,审查抽象语法树是否符合该编程语言的规则。 1. 文章的内容和主题 我对编译器的深入了解起源于一条推特中的问题:Angular是如何用Angular预先编译器(AOT)对静态代码进行解析工作的。在进行一些...

    pingan8787 评论0 收藏0
  • Python new 类方法和 init 实例方法以及单例模式的简单讨论

    摘要:中的类都是单例模式一天,一同事问我这样一个问题。与方法属于新式类,即属于类。方法在实例被创建之后被调用,该方法仅仅是对方法创建的实例进行一些初始化操作。需要注意的是,在重写方法与方法的参数应该保持一致,否则会有发生。 Python 中的类都是单例模式? 一天,一同事问我这样一个问题。这是一个奇怪的问题,可能你也这么认为。这里先不做解释,我们先来看看 __new__ 和 __init__...

    FingerLiu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<