将函数名称添加到装饰器输出

时间:2016-09-01 14:50:15

标签: python function decorator python-decorators

我有一个python代码片段,允许我将时间作为装饰器。我想在输出中添加函数名称。时间以毫秒为单位

def func_timer(func):
    def f(*args, **kwargs):
        start   = time.time()
        results = func(*args, **kwargs)
        print "Elapsed: %.6fs" % (time.time() - start)
        return results

    return f

用法是:

@func_timer
def foo():
    pass

当前输出为:

Elapsed: 0.005168s

所需输出:

foo Elapsed: 5.168ms

1 个答案:

答案 0 :(得分:4)

函数对象具有__name__属性,您可以使用它。如果你想要毫秒,只需将时间乘以1000:

print "%s Elapsed: %.6fms" % (func.__name__, (time.time() - start) * 1000)