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

python装饰器详解

时间:2018-05-31 00:32:23      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:返回   定义   装饰器   高阶函数   就是   添加   imm   一个   time()   

装饰器:本质上就是一个函数(装饰其它函数):为其他函数添加附属功能。

原则:

  • 不能修改被装饰函数的源代码
  • 不能修改被装饰函数的调用方式

实现装饰器(decorator)的知识储备:

  1. 函数即变量
  2. 高阶函数
  3. 嵌套函数

函数即变量:

  • 把函数名当作实参传给另外一个函数(实现了不修改被装饰函数源代码)
  • 返回之中包含函数名(不修改函数调用方式)                                    

嵌套函数:在一个函数体内用def定义了一个函数

装饰器:@ 函数名

# 装饰器
import time
def timmer(func):
    #重写函数功能
    def changeFunc():
        time_start=time.time()
        func()
        time_stop=time.time()
        print("this func have use %s time" %(time_stop-time_start))
    return changeFunc

@timmer #类似于代码 test1=timmer(test1) test1()给函数重新附上新的首地址
def test():
    time.sleep(3)
    print("in the test")
test()

  

python装饰器详解

标签:返回   定义   装饰器   高阶函数   就是   添加   imm   一个   time()   

原文地址:https://www.cnblogs.com/qkqBeer/p/9114105.html

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