Python装饰器

2018-12-07  本文已影响0人  继即鲫迹极寂寂

当希望增加函数功能,同时又不改变函数定义的情况下,可以使用装饰器(decorator)。

import time, functools
def printTime(text):#装饰器自定义文字,这句可选
    def decorator(func):#将函数作为参数传入装饰器
        @functools.wraps(func)#确保函数本身属性不变,固定写法
        def log(*args, **kw):#自定义装饰器函数,参数不固定可以适配任意函数
            print("%s%s%s" % (func.__name__, text, time.time()))#打印函数执行时间
            return func(*args, **kw)
        return log
    return decorator

@printTime('fast执行时间是')#装饰器调用
def fast(x, y):
    return x + y

f = fast(11, 22)
print(f)
-----------------------执行结果-------------------------
fastfast执行时间是1544147487.86
33
上一篇 下一篇

猜你喜欢

热点阅读