使用最简单的示例对python函数装饰器进行理解

    技术2022-07-11  145

    python中的函数装饰器是一个非常有用的机制,我们在调用函数被装饰函数的时候,其实是首先调用了他的装饰器函数,本质上来说,是把这个参数作为参数传给了它的装饰器函数,然后运行了装饰器函数,也就是对它进行了包装,这个函数是核心的内容,外围的固定流程都已经做好了,有点像游戏开发的核心玩法和周边系统的关系。

    示例:

    from functools import wraps import time #装饰器:输入是函数,输出也是函数 def print_info(f): #输入的函数要被wraps所装饰 @wraps(f) #输出的函数也是在装饰器函数中定义的 def info(): print(f'正在调用的函数是{f.__name__}') t1 = time.time() f() t2 = time.time() delta = t2 - t1 print(f'函数调用的时长是{delta}') return info #定义两个函数 @print_info def f1(): time.sleep(1.0) @print_info def f2(): time.sleep(2.0) f1() f2()

    输出结果:

    正在调用的函数是f1 函数调用的时长是1.0013244152069092 正在调用的函数是f2 函数调用的时长是2.000617027282715
    Processed: 0.021, SQL: 9