Python不归路_装饰器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python不归路_装饰器相关的知识,希望对你有一定的参考价值。

装饰器

  装饰器 什么是装饰器?给现有函数添加新功能的函数,不更改现有函数源代码,现有函数调用方式。装饰器是由高阶函数和嵌套函数组成。

  概括上面这句话的意思:1、装饰器 - - - > 函数 ;

             2、不更改现有函数源代码

             3、不更改现有函数调用方式

             4、装饰器对于函数来说是透明的(不产生任何影响)

  装饰器运用的情景:在生产环境中,业务不能中断时,要给某些大量调用函数填加新功能时。

  高阶函数  怎么样的函数才是高阶函数

  1.把函数名作为实参传递给另外一个函数

  2.返回值中包括函数

  下面我们来感受下高阶函数是怎么把函数名作为实参传递给另外一个函数的

def prt():
    print(this is prt!)
def func1(x):
    print(this is func1!)
    x()
func1(prt)

  输出结果:

this is func1! #执行print(‘this is func1‘)语句
this is prt! #执行x(),在func1调用时,将函数prt作为参数传入,所以x()=prt()。

  我们可以得出一个结论,函数即变量。

  返回值return

  在《初始函数(一)》中,我们已经知道函数可以返回任何值,包括函数,函数返回值可以采用赋值给变量的形式被捕获。  

def prt():
    print(this is prt!)
def func1():
    print(this is func1!)
    return func1
func1(prt)

  输出结果:

this is func1!
<function func1 at 0x000001EEDC1316A8> #返回值func1内存地址    return func1

     然后我们可以把返回值赋值给某一变量

prt=func1()

  嵌套函数

  在函数嵌套定义另一个函数,一定是在函数中定义的。

def func1():
     def func2():
        print(‘this is func2’)
        return 1
    return 1

 

 

 

  

 

 

 

 

-------不会开发的运维不是好厨师

 

 

 

 

 

 


以上是关于Python不归路_装饰器的主要内容,如果未能解决你的问题,请参考以下文章

Python不归路_迭代器

python使用上下文对代码片段进行计时,非装饰器

python学习5_装饰器

python_装饰器

python-装饰器

python_装饰器——迭代器——生成器