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)            

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

  • 相关阅读:
    jq---方法总结
    Coderfroces 862 B . Mahmoud and Ehab and the bipartiteness
    Coin
    joisino's travel
    日天的终生大事(dp)
    Codefroces 852 G. Bathroom terminal
    Codefroces432 div2 A,B,C
    Atcoder ABC 069 C
    Codefroces 849 A,B
    HDU 6186 CS Course
  • 原文地址:https://www.cnblogs.com/SamllBaby/p/5425724.html
Copyright © 2011-2022 走看看