Discuss / Python / 复习

复习

Topic source
import functools

def log(arg):
    text = '' if callable(arg) else arg
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args,**kw):
            print('before ' + text)
            func(*args,**kw)
            print('after '+text)
        return wrapper
    return decorator(arg) if callable(arg) else decorator

@log
def test():
    print( '呵呵呵')

@log('execute')
def test2():
    print('哈哈哈')

test()
test2()

是不是少加了个返回值

改:

 print('before ' + text)
 result =  func(*args,**kw) #缓存
 print('after '+text)
 return result;             #返回

  • 1

Reply