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

    老男孩教育 所受学 

    1、什么是装饰器

      器==》工具==》函数

          装饰==》指的是为被装饰着添加到新功能

    2、为何要是用装饰器

      开放封闭原则:

        封闭指的是对修改源代码是封闭的

        开放是指对拓展新功能是开放的

      装饰器就是一个函数,该函数就是在不修改被装饰对象源代码、以及调用方式前提下,用来为其他函数对象添加额外的功能

            

    3,如何实现装饰器===》闭包函数

      装饰器的目标:是为被装饰对象添加额外的功能

      装饰器的原则:不修改被装饰的对象的源代码,不修改被装饰对象的调用方式

    4,装饰器模板

      

    def auth(func):
        def warpper(*args,**kwargs):
          res
    =func(*args,**kwargs) return res return warpper

    实例 装饰一个计算函数运行时间

      

    import time
    from functools import wraps
    def timmer(func):
        @wraps(func)#为了返回被装饰的函数的相同属性
        def warpper(*args,**kwargs):
            start = time.time()
            res=func(*args,**kwargs) # 为了返回被装饰函数的返回值
            stop=time.time()
            print("run time is %s"%(stop-start))
            return res #返回被装饰函数的返回值
        return warpper
    @timmer
    def index():
        print("index====>")
        time.sleep(0.5)
        return "成功执行"
    index()

    未完。。。。。。。

        

  • 相关阅读:
    Java面试之最常见的十道面试题(超经典)
    hdu 3939(勾股+容斥)
    poj 1845 (逆元 + 约数和)
    hdu 5607 BestCoder Round #68 (矩阵快速幂)
    中国剩余定理
    Math
    (⊙o⊙)…
    lucas定理
    hdu 5600 BestCoder Round #67 (div.2)
    hdu5601 BestCoder Round #67 (div.2)
  • 原文地址:https://www.cnblogs.com/yjc53/p/13436745.html
Copyright © 2011-2022 走看看