Python Decorator函数获取堆栈溢出

Python Decorator函数获取堆栈溢出,python,python-3.x,currying,Python,Python 3.x,Currying,执行时,超过了最大递归深度 问题: 为什么debug()执行无限递归?似乎工作正常:@AshwiniChaudhary对不起?您是否将print传递给装饰师?我不明白。 # debug.py from functools import wraps, partial def debug(func=None, *, prefix=''): if func is None: # Wasn't passed return partial(debug, pref

执行时,超过了最大递归深度

问题:
为什么
debug()
执行无限递归?

似乎工作正常:@AshwiniChaudhary对不起?您是否将
print
传递给装饰师?我不明白。
# 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)