装饰器

计算程序运行耗时:

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()
posted @ 2018-08-31 14:31  日拱一卒🔥  阅读(125)  评论(0编辑  收藏  举报