zoukankan      html  css  js  c++  java
  • zhlan--Python中的装饰器

    装饰器:不改变原来函数的调用方式和参数,为其增加新功能;

    下面这个装饰器,是在不改变 fun() 的调用方式和参数下,为其包装了一层名为 timer 的装饰器,使其拥有 deco() 这个新功能,代码如下:

    import time
    def timer(func):
    def deco():
    start_time = time.time() # 开始时间
    func()
    end_time = time.time() # 结束时间
    print('run数的运行时间是%.2f' % (end_time - start_time))
    return deco
    # deco这个函数其实就是返回了一个函数名而已
    # @timer # run = timer(run) 意思是下面的这个函数要调用timer这个装饰器
    def run():
    print('run...')
    time.sleep(1)
    run = timer(run) # run = deco 如果用@timer了,就不用写这句了
    # 1、调用timer函数的时候,要传入一个方法名
    # timer函数在函数内部定义了一个函数叫做deco
    # 又在函数deco内部调用了timer里面传入的方法
    # run保存的是decodeco是一个函数,调用run就是调用deco
    run() # run() = deco()

    调用时在使用它的函数前@它

  • 相关阅读:
    数据结构和算法大纲
    内存碎片产生原因及处理技术
    相关资源
    busybox hexdump 命令使用
    http协议中content-length 以及chunked编码分析
    libtool工具的使用
    音视频学习相关资源
    winpcap
    ipkg包管理
    system返回值校验
  • 原文地址:https://www.cnblogs.com/zhlan/p/7028029.html
Copyright © 2011-2022 走看看