zoukankan      html  css  js  c++  java
  • Python9-装饰器-day11

    import time
    def timmer(f):   #装饰器函数
        def inner():
            start = time.time()
            ret = f()         #被装饰的函数
            end = time.time()
            print(end-start)
            return ret
        return inner
    @timmer   #魔法糖 @装饰器函数名   ====>func = timmer(func)
    def func():   #被装饰的函数
        time.sleep(0.01)
        print('hahaha')
        return 'good st'
    # func = timmer(func)
    ret = func()
    print(ret)
    

     

    #不想修改函数的调用方式,但是还想在原来的函数前后添加功能
    #timmer就是一个装饰器函数,只对一个函数有一些装饰作用
    #原则: 开放封闭原则
    #开放 :对扩展是开放的
    #封闭 :对修改是封闭的

    #装饰带参数函数的装饰器
    def timmer(f):   #装饰器函数
        def inner(a):
            start = time.time()
            ret = f(a)         #被装饰的函数
            end = time.time()
            print(end-start)
            return ret
        return inner
    @timmer   #魔法糖 @装饰器函数名
    def func(a):   #被装饰的函数
        time.sleep(0.01)
        print('hahaha',a)
        return 'good st'
    # func = timmer(func)
    ret = func(1)
    print(ret)

    多参数

    def timmer(f):   #装饰器函数
        def inner(*args,**kwargs):
            start = time.time()
            ret = f(*args,**kwargs)         #被装饰的函数
            end = time.time()
            print(end - start)
            return ret
        return inner
    
    @timmer   #魔法糖 @装饰器函数名
    def func(a,b):   #被装饰的函数
        time.sleep(0.01)
        print('hahaha',a,b)
        return 'good st'
    
    @timmer   #魔法糖 @装饰器函数名
    def func1(a):   #被装饰的函数
        time.sleep(0.01)
        print('hahaha',a)
        return 'good st'
    
    # func = timmer(func)
    ret = func(1,2)
    ret = func(1,b=2)
    print(ret)

     装饰器定式

    def wapper(f):   #装饰器函数  f是被装饰的函数
        def inner(*args,**kwargs):
            '''在被装饰函数之前要做的事'''
            ret = f(*args,**kwargs)         #被装饰的函数
            '''在被装饰函数之后要做的事'''
            return ret
        return inner
    
    @wapperr   #魔法糖 @装饰器函数名
    def func(a,b):   #被装饰的函数
        time.sleep(0.01)
        print('hahaha',a,b)
        return 'good st'
  • 相关阅读:
    洛谷 P1213 时钟 &&IOI 1994 The Clocks
    P1457 城堡 The Castle
    [USACO08OCT]牧场散步Pasture Walking
    洛谷 P1262 间谍网络
    [USACO09DEC]牛收费路径Cow Toll Paths
    1266: [AHOI2006]上学路线route
    1093: [ZJOI2007]最大半连通子图
    洛谷 P3797 妖梦斩木棒
    1821: [JSOI2010]Group 部落划分 Group
    2019中国产业互联网领袖峰会(上海)
  • 原文地址:https://www.cnblogs.com/zhangtengccie/p/10303666.html
Copyright © 2011-2022 走看看