Discuss / Python / 可变参数解决变化文本装饰器

可变参数解决变化文本装饰器

Topic source

奥斯卡

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

import functools

def log(*text):

    def decorator(func):

        @functools.wraps(func)

        def wrapper(*args,**kw):

            print('begin call')

            if len(text) != 0:

                for n in text:

                    print(n,end='')

                print(' %s()' %func.__name__)

            else:

                print('call %s()' %func.__name__)

            print('end call')

            return func(*args,**kw)

        return wrapper

    return decorator

@log()

def f():

    pass

f()

print()

@log('execute')

def h():

    pass

h()


  • 1

Reply