Discuss / Python / 参考几位高手答案后,交作业~~

参考几位高手答案后,交作业~~

Topic source

一雷叔一

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

import functools

def log(args_log):

if callable(args_log):  #callable(object)检查对象object是否可调用
    @functools.wraps(args_log)
    def wrapper(*args, **kw):
        print('begin call')
        print('call %s():' % args_log.__name__)
        args_log(*args, **kw)
        print('end call')    

    return wrapper

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

        return wrapper
    return decorator

@log def f(): print('执行f函数')

@log('execute') def f2(): print('执行f函数')

f() f2()


  • 1

Reply