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

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

  • 相关阅读:
    关于C#登录三层
    SQL 语句关于分页的写法
    C# 如何去掉button按钮的边框线
    20151220
    继承
    对象的旅行
    多态
    封装
    OO大原则
    javascript
  • 原文地址:https://www.cnblogs.com/zhlan/p/7028029.html
Copyright © 2011-2022 走看看