Python中的装饰器详细介绍
admin
2023-06-25 21:42:14
0

  Python 装饰器

  一、装饰器定义

  二、装饰器知识储备

  三、高阶函数

  1.高阶函数定义:

  2.高阶函数的示范

  3.高阶函数的总结

  四、函数嵌套

  五、闭包

  Python 装饰器

  一、装饰器定义

  装饰器本质就是函数,功能是为其他函数添加附加功能

  原则:

  1)不修改被修饰函数的源代码

  2)不修改被修饰函数的调用方式

  二、装饰器知识储备

  装饰器 = 高阶函数 + 函数嵌套 + 闭包

  三、高阶函数

  1.高阶函数定义:

  函数接受的参数是一个函数名

  函数的返回值是一个函数名

  满足上述条件任意一个都可以称之为高阶函数

  2.高阶函数的示范

  把函数当做参数传给高阶函数

  import time

  def foo():

  time.sleep(1)

  print('你好刘力菲')

  def test(func):

  print(func)

  start_time = time.time()

  func()

  stop_time = time.time()

  print('函数运行时间是 %s' % (stop_time - start_time))

  foo()郑州人流多少钱 http://www.hnmt120.com/

  test(foo)

  可以看到foo函数又在test函数中执行了一遍

  3.高阶函数的总结

  函数接受的参数是一个函数名

   作用:在不修改函数源代码的前提下,为函数添加新功能

   不足:会改变函数的调用方式

  函数的返回值是一个函数名

   作用:不修改函数的调用方式

   不足:不能添加新功能

  四、函数嵌套

  函数嵌套就是在函数里面在定义函数

  def func():

  pass

  def func1():

  pass

  def func2():

  pass

  pass

  五、闭包

  在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包

  例子

  def func(a):

  aa=11

  def func1():

  c=a+aa

  print(c)

  return func1

  使用闭包的过程中,一旦外函数被调用一次返回了内函数的引用,虽然每次调用内函数,是开启一个函数执行过后消亡,但是闭包变量实际上只有一份,每次开启内函数都在使用同一份闭包变量

  def outer(x):

  def inner(y):

  nonlocal x

  x+=y

  return x

  return inner

  a=outer(100)

  print(a(50))

  print(a(100))


相关内容

热门资讯

伊朗撂下3句狠话 网络上的P图,看看挺有意思的世间万千博弈,最耗心神的,从来不是立场分歧,而是态度的反复无常。这也是现...
普京:亚美尼亚若入欧盟,得先算... 新华社阿斯塔纳/莫斯科5月29日电(记者张继业 许炜凯) 俄罗斯总统普京29日表示,亚美尼亚在欧盟和...
伊朗军方在格什姆岛附近击落敌对... 总台记者当地时间5月29日晚自伊朗方面获悉,伊朗陆军防空部队在监测到敌方小型无人机后,在格什姆岛附近...
联合国安理会延长对南苏丹武器禁... △当地时间5月29日,安理会成员国在就南苏丹制裁授权延期决议草案进行表决。当地时间5月29日,联合国...
字节Seed AI4S或考虑分... 来源:市场资讯 (来源:三言科技) 5月29日,据Z Finance,字节Seed旗下AI4S团队正...
刷新在轨驻留最长纪录!神二十一... 自2025年11月1日进驻空间站以来,神舟二十一号乘组在轨驻留了约7个月,刷新中国航天员乘组在轨驻留...
广东荔枝迎采收季,无人机单机日... 5月底,岭南荔枝进入采收与上市关键期。南都湾财社记者获悉,以大疆为代表的农业无人机正大规模替代传统人...
伊媒:特朗普关于伊美协议的说法... 新华社德黑兰5月29日电 伊朗法尔斯通讯社29日以一名伊方知情人士为消息源,反驳美国总统特朗普关于美...
电视为什么一直闪屏 由于电源电压不稳定或电源供电不足的缘故、电视分辨率的故障、电视存在周围有电磁干扰的缘故、电视的刷新频...
专访塞尔维亚总统武契奇 塞尔维亚总统武契奇首次对中国进行国事访问,接受《高端访谈》专访。他说,这是他政治生涯中最重要的一次访...