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

    ---恢复内容开始---

    1.开放封闭原则

         软件一旦上线后,就应该遵循开放封闭原则,即对修改源代码是封闭的,对功能扩展是开放的,也就是说我们必须找到一种解决方案:

          能够在不修改一个功能源代码以及调用方式的前提下,为其加上新功能

     归纳两个原则如下:
    1.不修改源代码
    2不修改调用方式

    2、什么是装饰器

    器指的是工具,装饰指的是为装饰对象添加新功能

    完整的含义:

    装饰器即在不修改函数源代码和调用方式的前提下,为被装饰对象添加新功能

    装饰器与被装饰的对象均可以是任意可调用的对象

    装饰器==>函数

    被装饰的对象==>函数

    3.无参装饰器

    (模板)

    def outer(func):
         def inner(*args,**kwargs):
         res=func(*args,**kwargs)
         return res
    return inner

    ==============装饰器
    def timmer(func):
    #func=最原始的home
         def wrapper(*args,**kwargs):
               start_time=time.time()
               res=func(*args,**kwargs) #调用最原始的home
               stop_time=time.time()
               print(stop_time-start_time)
               return res
         return wrapper


    index=timmer(index) # 新的index=wrapper
    home=timmer(home) #新的home=wrapper
     ==========================================

    res=index() #res=wrapper()
    print(res)

    ---恢复内容结束---

  • 相关阅读:
    linux下给U盘分区&制作文件系统
    迭代器 配接器
    仿函数
    在查询用户的权限的时候 使用左外连接 和 access数据库中左外连接
    C# 想要程序文件移动 而数据保持相对位置
    C# 第三方控件 下面的Item不显示了
    C# 第三方控件 错误 LC-1
    c# 第三方控件 闪退
    access 语句错误
    poj 1469(二分图 最大匹配)
  • 原文地址:https://www.cnblogs.com/shengg/p/8670656.html
Copyright © 2011-2022 走看看