Discuss / Python / 答案

答案

Topic source

lmtooT_T

#1 Created at ... [Delete] [Delete and Lock User]
import functools

def log(f):
    if isinstance(f,str):
        text=f
        def decorator(func):
            def wapper(*args,**kw):
                print('%s %s():' % (text,func.__name__))
                return func(*args,**kw)
            return wapper
        return decorator
    else:
        func=f
        text='exe:L'
        def wapper(*args,**kw):
            print('%s %s():' % (text,func.__name__))
            return func(*args,**kw)
        return wapper


@log
def now():
    print('2014-05-02')

now()

@log不加括号代表log函数本身,加了括号代表log调用返回的结果


  • 1

Reply