zoukankan      html  css  js  c++  java
  • python——装饰器的使用

    python装饰器的作用就是把一个函数作为参数传给另外一个参数

    import time
    def step1():
        for i in range(0,50):
            print("Step 1........")
    
    def step2():
        for i in range(0,50):
            print("Step 2........")
    
    def step3():
        for i in range(0,50):
            print("step 3 ........")
    
    def timer(func):#函数作为参数传进来
        #统计函数运行时间的装饰器
        def wrapper():
            start = time.time()
            func()
            end = time.time()
            used = end -start
            print(f'{func.__name__} used {used}')
        return wrapper
    timer(step1)()#将step作为一个参数传给timer,然后使用()调用函数,这个写法不好
    timer(step2)()
    timer(step3)()

    但是这个写法不好,可以使用@作为语法糖

    import time
    def timer(func):#函数作为参数传进来
        #统计函数运行时间的装饰器
        def wrapper():
            print("程序开始运行")
            start = time.time()
            func()
            end = time.time()
            used = end -start
            print("程序运行结束")
            print(f'{func.__name__} 耗时 {used}')
        return wrapper
    
    @timer
    #使用@符号作为语法糖,当调用step1()函数的时候,python会找到@timer,将其作为step1()函数的代理
    #python会先找timer函数,将其作为step1函数的代理
    def step1():
        for i in range(0,50):
            print("Step 1........")
    
    @timer
    def step2():
        for i in range(0,50):
            print("Step 2........")
    
    @timer
    def step3():
        for i in range(0,50):
            print("step 3 ........")
    
    step1()
    step2()
    step3()
  • 相关阅读:
    Lua 虚拟机指令
    如何打包和部署air应用程序
    demjson
    mongo批量插入问题(insert_many,bulk_write),spark df转json传入mongo
    python isinstance()方法的使用
    python 时间对应计算
    第三方库-正则re
    第三方库-时间函数dateutil
    Mongodb操作-更新操作符
    python文件操作-1.将PDF转成Excel
  • 原文地址:https://www.cnblogs.com/shunguo/p/14540041.html
Copyright © 2011-2022 走看看