Discuss / Python / 再次练习一下

再次练习一下

Topic source
# _*_ coding: utf-8 _*_
import functools
import time

def log(text):
    if isinstance(text,str):
        def decorator(func):
            @functools.wraps(func)
            def wrapper(*args, **kw):
                print('%s begin call %s()' % (text, func.__name__))
                func(*args, **kw)
                print('%s end call %s()' % (text, func.__name__))
                return
            return wrapper
        return decorator

    else: 
        functools.wraps(text)
        def wrapper(*args, **kw):
            print('begin call %s()' % text.__name__)
            func(*args, **kw)
            print('end call %s()' % text.__name__)
            return
        return wrapper

@log('goldbro')
def f():
    print('executed %s ' % f.__name__)

f()

  • 1

Reply