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】空指针异常
    【JAVA】分隔字符串的小技巧
    【JAVA】imageio异常:不支持图像类型
    权限设计“终极”解决方案
    一直困扰我的.net 2.0和,net 1.1同时运行的问题解决了
    乱谈成本三
    SandBar学习笔记
    不是吧!怎么这样
    学习Java的相关知识
    代码自动生成工具的补充
  • 原文地址:https://www.cnblogs.com/yjc53/p/13436745.html
Copyright © 2011-2022 走看看