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()

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

  • 相关阅读:
    大二暑假学习第一周
    PyQt5+pycharm 中对生成的.py文件无法运行的问题
    尚筹网19总结
    尚筹网19项目部署
    MAC远程连接Linux
    尚筹网17订单、支付
    尚筹网16确认回报、订单
    支付宝沙箱环境
    内网穿透
    支付宝开发平台使用
  • 原文地址:https://www.cnblogs.com/zhlan/p/7028029.html
Copyright © 2011-2022 走看看