zoukankan      html  css  js  c++  java
  • 装饰器语法糖

    TOC

    什么是装饰器语法糖

    装饰器语法糖属于装饰器的

    注意:在使用装饰器语法糖时,装饰器必须定义在被装饰对象之上

    import time
    
    
    # 统计函数执行时间装饰器
    def wrapper(func):  # 被装饰对象
        def inner(*args, **kwargs):  # 被装饰对象的参数
            # 调用前增加新功能
            start_time = time.time()
            # 调用被装饰对象,并接收返回值
            res = func(*args, **kwargs)
    
            # 调用后添加新功能
            end_time = time.time()
            print(end_time - start_time)
    
            return res
        return inner
    
    
    # func函数需要执行3秒
    
    # 无参装饰器
    # 使用装饰器
    @wrapper  # wrapper(func)  ---> func
    def func():
    
        time.sleep(3)
    
    
    # 不用装饰器
    def func2():
        time.sleep(3)
    
    func()

    计算程序的运行时间(利用函数的语法糖)

    import time
    
    
    def time_timer(func):
        def inner():
            start_time = time.time()
            res = func()
            end_time = time.time()
            print(f'消耗了:{end_time - start_time}')
            return res
        return inner
    
    
    @time_timer
    
    def download_movie():
        print('开始下载电影...')
        time.sleep(3)
        print('下载完毕...')
        return '小泽.mp4'
    
    
    download_movie()
  • 相关阅读:
    青城的另一个一夜/情
    SystemProperties.get/set property_get/set
    锁——Java同步的基本思想
    CMUSphinx Learn
    猜数字
    我的音乐我的电影
    动态规划_钢条切割问题
    directdraw显示yuv420(YV12)
    Redis 命令参考
    HDU 3078 LCA转RMQ
  • 原文地址:https://www.cnblogs.com/cnhyk/p/11890736.html
Copyright © 2011-2022 走看看