Discuss / Python / 小结拓展题

小结拓展题

Topic source

状元刚01

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

提问在@log不带括号(即不是@log())的情况是如何做的,感谢

import functools
def log(text=''):
    def decorator(fn):
        @functools.wraps(fn)
        def wrapper(*args,**kw):
            print('%s start call %s' % (text,fn.__name__) )
            fn(*args,**kw)
            print('%s end call %s' % (text,fn.__name__) )
            return fn(*args,**kw)
        return wrapper
    return decorator

@log() #或者@log(‘executed’)
def fn(x):
    return x*x

fn(2)

_王若水

#2 Created at ... [Delete] [Delete and Lock User]

还想粘贴自己的代码的,原来评论区的大神早就搞定了,只是自己没找到而已


  • 1

Reply