码迷,mamicode.com
首页 > 编程语言 > 详细

Python不归路_装饰器(一)

时间:2017-08-21 14:43:06      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:执行   nbsp   另一个   数组   return   code   影响   传递   函数返回值   

装饰器

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

  概括上面这句话的意思: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不归路_装饰器(一)

标签:执行   nbsp   另一个   数组   return   code   影响   传递   函数返回值   

原文地址:http://www.cnblogs.com/gally-jiang/p/7387615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!