装饰器
计算程序运行耗时:
import time
def deco(func):
def demo(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(int(end_time - start_time))
return result
return demo
# 装饰test函数
n = deco(test)
n()
带参数的装饰器:
def use_logging(level):
def deco(func):
def wrapper(*args, **kwargs):
if level == "warn":
print('警告')
elif level == "info":
print('正常')
return func(*args)
return wrapper
return decorator
@use_logging(level="warn")
def foo(name='foo'):
print("i am %s" % name)
foo()