zoukankan      html  css  js  c++  java
  • python设计模式之装饰器模式

    装饰器模式

    装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。

    这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。

    import time
    def log_calls(func):
        def wrapper(*args,**kwargs):
            now=time.time()
            print("Calling{0} with {1} and {2}".format(
                func.__name__,args,kwargs))
            return_value=func(*args,**kwargs)
            print("Executrd{0} in {1}ms".format(
                func.__name__,time.time()-now))
            return return_value
        return wrapper
    
    def test1(a,b):
        print("test1 called")
        time.sleep(1)
    test1=log_calls(test1)
    test1(1,2)            

    函数传入装饰器并返回一个新的函数,将原有函数的函数名分配给新函数,从而有效地使用装饰过的函数替换原来的函数。

  • 相关阅读:
    第六周上机任务
    java第四次作业
    第二次上机练习
    第三周作业
    第一次上机作业
    计算机1802刘思源
    第五次上机作业
    第六周作业
    第四次上机作业
    第三次上机作业
  • 原文地址:https://www.cnblogs.com/SamllBaby/p/5425724.html
Copyright © 2011-2022 走看看