第一题: def log(func): def wrapper(args, **kw): print('call begin') func(args, **kw) print('call end') return return wrapper
第二题: def log(text): if not isinstance(text,str): def wrapper(args, **kw): print('call %s():' % text.name) return text(args, kw) return wrapper else: def decorator(func): @functools.wraps(func) def wrapper(*args, kw): print('%s %s():' % (text, func.name)) return func(args, *kw) return wrapper return decorator
两题都是表面上运行可行,但是不知道我是否理解错误,求大神斧正。
复制的时候有些* 被自动去掉了
Sign in to make a reply
哭未霜
第一题: def log(func): def wrapper(args, **kw): print('call begin') func(args, **kw) print('call end') return return wrapper
第二题: def log(text): if not isinstance(text,str): def wrapper(args, **kw): print('call %s():' % text.name) return text(args, kw) return wrapper else: def decorator(func): @functools.wraps(func) def wrapper(*args, kw): print('%s %s():' % (text, func.name)) return func(args, *kw) return wrapper return decorator
两题都是表面上运行可行,但是不知道我是否理解错误,求大神斧正。