“超出最大递归深度”,试图调用重载函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“超出最大递归深度”,试图调用重载函数相关的知识,希望对你有一定的参考价值。

我正在设置自定义用户身份验证,当我尝试在Powershell中创建超级用户时,出现错误“ [上一行重复986次以上]RecursionError:超过最大递归深度”指的是我的create_superuser()

models.py

def create_superuser(self, username, password=None):
    user = self.create_superuser(
        username,
        password = password,
        is_staff = True,
        is_admin = True

    )
    user.save(using=self._db)
    return user
答案

似乎您要调用重载函数。

在Python中,没有函数重载。而是,函数可以具有灵活的签名(optional arguments, receiving any arguments via *args and **kwargs)。如果您在相同的作用域中定义了两个具有相同名称的函数,则解释器以后遇到的一个函数将简单地替换前一个。

因此,您需要使用灵活的签名将两个功能合并为一个。 (没有什么可以阻止您拆分辅助功能或其他功能,但是它们需要使用不同的名称)。

以上是关于“超出最大递归深度”,试图调用重载函数的主要内容,如果未能解决你的问题,请参考以下文章

pyinstaller递归错误:超出最大递归深度

RecursionError:重命名列条目后调用 Python 对象时超出最大递归深度

MongoEngine 0.5:RuntimeError:调用 Python 对象时超出最大递归深度

pyinstaller 创建 EXE RuntimeError:调用 Python 对象时超出最大递归深度

调用 Python 对象进行连续场景更新时超出最大递归深度

Haskell中的重载内置函数