美文网首页
能否写出一个@log的decorator,使它既支持:@log(

能否写出一个@log的decorator,使它既支持:@log(

作者: 纟彖来 | 来源:发表于2018-11-14 15:47 被阅读0次

题目:能否写出一个@log的decorator,使它既支持:@log()又支持@log('execute')

'''

能否写出一个@log的decorator,使它既支持:@log()又支持@log('execute')

import functools
def log(*text):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args,**kw):
            print(func.__name__,' begin ' ,*text)
            func(*args,**kw)
            print(func.__name__,' end ',*text)
            
        return wrapper
    return decorator

@log('execute')  #or@log()
def foo():
    print('foo is running...')
if __name__=='__main__':
    f=foo
    f()

'''

相关文章

网友评论

      本文标题:能否写出一个@log的decorator,使它既支持:@log(

      本文链接:https://www.haomeiwen.com/subject/xvsjfqtx.html