Discuss / Python / 练习

练习

Topic source
# _*_ coding: utf-8 _*_
import functools
def log(func):
    if isinstance(func, str):
        def decorator(fn):
            @functools.wraps(fn)
            def wrapper(*args, **kw):
                print('begin %s' % func)
                f = fn(*args, **kw)
                print('end %s' % func)
                return f
            return wrapper
        return decorator
    else:        
        @functools.wraps(func)
        def wrapper(*args, **kw):
            print('begin call')
            f = func(*args, **kw)
            print('end call')
            return f
        return wrapper

@log
def f():
    print('hello')
# @log('execute')
# def f():
#     print('hello')

f()

上下没有什么区别呢感觉,不管是不是有参数都是一样吧


  • 1

Reply