当前位置:天才代写 > Python代写 > python 装饰器 @简单使用-python基础

python 装饰器 @简单使用-python基础

2021-02-12 14:02 星期五 所属: Python代写 浏览:10

情况

我一开始触碰python的情况下就惦记着如何完成java中注释(@英语的语法)的方法敲代码,终究那样在启用的情况下确实很便捷,因此我也在网络上找了下发觉在python中早已有这类方法了,这就是今日给大伙儿共享的python装饰器@

从复印日志谈起

日志作用非常简单,便是纪录下调用函数的名字,及其涵数实行的時间,不应用装饰器的作法以下:

from time import time
# 界定log函数
def log(func):
    start_time = time()
    func()
    end_time = time()
    run_time = end_time - start_time
    print('实行涵数{}应用时间:{}'.format(func.__name__,run_time))

# 界定一般调用函数
def say():
    print('hello,www.h3blog.com')

# 輸出启用say的实行時间
log(say)

輸出結果:

hello,www.h3blog.com
实行涵数say应用时间:3.337860107421875e-05

实际上上边的方法是根据python闭包启用的

应用装饰器启用

from time import time
import functools

def log(func):
    @functools.wraps(func)
    def wrapper(*args,**kwargs):
        start_time = time()
        ret = func(*args,**kwargs)
        end_time = time()
        run_time = end_time - start_time
        print('实行涵数{}应用时间{}'.format(func.__name__,run_time))
        return ret
    return wrapper

@log
def say():
    print('hello,www.h3blog.com')


if __name__ == '__main__':
    say()

终究起來python中的装饰器便是闭包回调函数的一次封裝,而@语法糖也是为便捷启用而设计方案的

 

    关键字:

天才代写-代写联系方式