首页 > 编程语言 > 详细

python装饰器

时间:2020-05-31 17:45:55      阅读:25      评论:0      收藏:0      [点我收藏+]

 

装饰器为原来的函数添加新的功能

def f(foo):
    def inner():
        start = time.time()
        foo()
        end = time.time()
        print(end - start)
    return inner


@f
def s():
    m = 0
    for i in range(100):
        m = m +i
    time.sleep(1)
    return m

s()

# @f等价于 s = f(s)

如果不加@f,可以这样调用

s = f(s)

s()

是同样的效果

 

技术分享图片

 

 

被装饰的函数有参数的情况

#被调用的函数有参数
def f(foo):
    def inner(*args):
        start = time.time()
        foo(*args)
        end = time.time()
        print(end - start)
    return inner

@f
def s(a,b):
    time.sleep(1)
    return a+b

s(1,2)

 

python装饰器

原文:https://www.cnblogs.com/qqxin/p/13019666.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!