Python -- 装饰器

2021/12/4 17:18:30

本文主要是介绍Python -- 装饰器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

输入:
import time
def foo():
    time.sleep(2)
    print('foo...')

def bar():
    time.sleep(3)
    print('bar...')

def deco(f):
    def inner():
        start = time.time()    #增加开始时间戳
        f()
        end = time.time()    #增加结束时间戳
        print('spend %s'%(end - start))    #添加功能为“打印函数执行时间”,所以要结束时间减去开始时间
    return inner

foo = deco(foo)    #给foo重新赋值,值为deco函数的返回值inner的内存地址
foo()    #此时调用foo,相当于调用inner。另外inner里的f为闭包,是从deco传入的形参,实参为开始定义的函数foo
bar = deco(bar)    #给bar重新赋值,值为deco函数的返回值inner的内存地址
bar()    #此时调用bar,相当于调用inner。另外inner里的f为闭包,是从deco传入的形参,实参为开始定义的函数bar
输出:

foo...
spend 2.000398635864258
bar...
spend 3.0060887336730957



这篇关于Python -- 装饰器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程