python - “超出最大递归深度”试图调用重载函数
问题描述
我正在设置自定义用户身份验证,当我尝试在 powershell 中创建超级用户时,它给了我一个错误“[Previous line repeated 986 more times] RecursionError: maximum recursion depth exceeded”,它指的是我的 create_superuser()
模型.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 中,没有函数重载。相反,函数可以具有灵活的签名(可选参数,通过*args
和**kwargs
接收任何参数)。如果你在同一个作用域中定义了两个同名的函数,解释器后面遇到的函数将简单地替换前者。
因此,您需要使用灵活的签名将您的两个功能合并为一个。(没有什么可以阻止您拆分辅助函数或其他任何东西,但它们需要有不同的名称)。
推荐阅读
- corda - 使用 Postman 调用流的 API 时有效负载无效
- ruby-on-rails - ActiveRecord 关联的意义何在?
- assembly - 如何在 zOS 汇编程序中获取 UTC 值
- javascript - 如何添加像 num.tf(n) 这样的方法作为 num.toFixed(n) 的别名
- javascript - 不能在多个类中重复相同的功能
- scheme - 使用 Gambit-C 编译方案
- android - Android:如何显示也不是顶级活动的顶级活动的后退按钮?
- java - Android Java 下载管理器不再工作
- c# - 如何在 net core C# 中获取当前环境 (QA/Prod/DEV) 名称?
- excel - 使用 vlookup 将数据保存到特定单元格