Discuss / Python / 带参 decorator 改造

带参 decorator 改造

Topic source
def log(arg):    def decorator(func=None):        if not func:            print('function %s():' % arg.__name__)            return arg()        @functools.wraps(func)        def wrapper(*args, **kw):            print('%s %s():' % (arg, func.__name__))            return func(*args, **kw)        return wrapper    return decorator


@log
def f():
    print('f测试成功')


@log('execute')
def g():
    print('g测试成功')


f()
g()

def log(arg):

    def decorator(func=None):

        if not func:

            print('function %s():' % arg.__name__)

            return arg()

        @functools.wraps(func)

        def wrapper(*args, **kw):

            print('%s %s():' % (arg, func.__name__))

            return func(*args, **kw)

        return wrapper

    return decorator

@log

def f():

    print('f测试成功')

@log('execute')

def g():

    print('g测试成功')

f()

g()


  • 1

Reply