zoukankan      html  css  js  c++  java
  • Python装饰器

    装饰器:
    定义:本质是函数,(装饰其他函数),为其它函数添加附加功能
    
    原则: 
    1、不修改被装饰的函数的源代码
    2、不修改被装饰的函数的调用方式
    
    函数即变量    函数名指向内存中的函数体
    
    
    高阶函数:
    1、把一个函数名当做实参传给另外一个函数
    2、返回值中包含函数名
    
    嵌套函数:
    1、在一个函数体内,用def定义一个函数
    
    
    
    高阶函数 + 嵌套函数 --> 装饰器
    
    
    #装饰器的实现方式
    
    import time
    
    def timmer(func):         #高阶函数:把一个函数名当做实参传给另外一个函数
        def deco(*args,**kwargs):           #嵌套函数:在一个函数体内,用def定义一个函数
            start_time = time.time()
            func(*args,**kwargs)             #执行被装饰函数
            stop_time = time.time()
            print("The func run time is %s" % (stop_time - start_time))  #加入的功能
        return deco          #高阶函数:返回值中包含函数名
    
    def test1():
        time.sleep(2)
        print("in the test1")
    
    
    test1 = timmer(test1)  #将函数名重新指向timmer函数return的deco在内存中的函数体,python的语法糖@相当于执行了这一步
    
    test1()     #调用函数,相当于调用deco()
  • 相关阅读:
    学习进度笔记13
    学习进度笔记12
    学习进度笔记11
    学习进度笔记10
    学习进度笔记9
    《架构之美》读书笔记1
    学习进度笔记8
    电话拨号盘(带触摸振动反馈)
    堆排序(小根堆)
    图论起步(长期更新)
  • 原文地址:https://www.cnblogs.com/Template/p/9531037.html
Copyright © 2011-2022 走看看