第一题:
import functools def log(text): def decorator(func): @functools.wraps(func) def wrapper(*args, **kw): print('%s %s():' % (text, func.__name__)) def func1(para_func): para_func(*args, **kw) print('end call %s()' % func.__name__) return None return func1(func) return wrapper return decorator
第二题:
二者都能用,就是有参可以代入任意'execute'字符串,无参就是固定的了
import functools def log(text): if text==str(text): def decorator(func): @functools.wraps(func) def wrapper(*args, **kw): print('%s %s():' % (text, func.__name__)) return func(*args, **kw) return wrapper return decorator else: func = text @functools.wraps(func) def wrapper(*args, **kw): print('call %s():' % func.__name__) return func(*args, **kw) return wrapper
Sign in to make a reply
執謎卜誤
第一题:
第二题:
二者都能用,就是有参可以代入任意'execute'字符串,无参就是固定的了