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

    装饰器

    本质就是函数,为其他函数添加附加功能。
    原则:

    1. 不修改被修饰函数的源代码;
    2. 不修改被修饰函数的调用方式;

    解压序列

    a,b,c = (1,2,3)
    #a=1
    #b=2
    #c=3
    

    装饰器实例

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

    import time
    def timmer(func):
        def wrapper(*args,**kwargs):  #cal('tiger',age=18)  --> args=('tiger') kwargs=['age':18]
            start_time= time.time()
            f = func(*args,**kwargs)   #cal(*('tiger'),**['age':18])
            stop_time = time.time()
            print("函数运行时间为:%s" %(stop_time-start_time))
            return f
        return wrapper
    
    
    @timmer
    def cal(name,age):
        print(name,age)
        return res
    a = range(10)
    res = cal(a)
    print(res)
    

    高阶函数不能实现装饰器

    import time
    def foo():
        time.sleep(3)
        print("this is foo")
    
    
    def test(func):
       start_time = time.time()
       func()
       end_time = time.time()
       print(end_time-start_time)
       return func
    
    foo = test(foo)
    foo()
    
  • 相关阅读:
    RPC
    Memcache
    python supervisor使用
    代码规范
    值传递,引用传递
    日志文件目录
    input标签的事件汇总
    箭头函数
    JS数组reduce()方法
    关于Python变量的学习总结
  • 原文地址:https://www.cnblogs.com/chrrydot/p/9790375.html
Copyright © 2011-2022 走看看