# debug.py
from functools import wraps, partial
def debug(func=None, *, prefix=''):
if func is None:
# Wasn't passed
return partial(debug, prefix=prefix)
# func is function to be wrapped
@wraps(func)
def wrapper(*args, **kwargs):
print('{}, func.__name__'.format(prefix))
return func(*args, **kwargs)
return wrapper
#example.py
from debug import debug
@debug
def add(x, y):
return x + y
@debug(prefix='**')
def sub(x, y):
return x - y
add(1, 2)
sub(1, 2)
执行时,超出最大递归深度
问题:
为什么debug()
执行无限递归?