Python能打印日志的语法装饰器

Posted 兔子爱读书

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python能打印日志的语法装饰器相关的知识,希望对你有一定的参考价值。

定义一个打印日志的代码:

def log(func):
    def wrapper(*args, **kwargs):
        now_time = str(time.strftime('%Y-%m-%d %X', time.localtime()))
        print('%s %s called' % (now_time, func.__name__))
        print('Comments:%s' % func.__doc__)
        print('%s returns:' % func.__name__)
        result = func(*args, **kwargs)
        p(result)
        return re
    return wrapper

调用它:

@log
def get_set_key(data):
    '''构建一个关键词集合,用于作为共现矩阵的首行和首列'''
    all_key = '/'.join(data)
    key_list = all_key.split('/')
    set_key_list = list(filter(lambda x: x != '', key_list))
    return list(set(set_key_list))

调用方式就是写一个@log在函数定义前。@log 是Python特有的一种函数简写方式,相当于factorial=log(factorial),将factorial()函数作为log函数的参数进行调用。

我们写的log函数是一个装饰器。装饰器的本质是在执行原有函数(被装饰的函数)的同时,再加上一些额外的功能。

以上是关于Python能打印日志的语法装饰器的主要内容,如果未能解决你的问题,请参考以下文章

Python小脚本基于装饰器的函数日志脚本

Python小脚本基于装饰器的函数日志脚本

Python装饰器Decorators

Python---进阶---logging---装饰器打印日志2

python之装饰器

python学习day07 高阶函数 装饰器 语法糖