[20:06:55][5648][INFO ][utils.py:20][]: ============== log initialized ==============
Traceback (most recent call last):
File "D:\ztcjingling\ztcjl3-20120903\apps\kwlib\test.py", line 10, in
from kwlib.task_manage import Task_Manager
File "D:\ztcjingling\ztcjl3-20120903\apps\kwlib\task_manage.py", line 461, in
class Claw_Task(Task_Manager):
File "C:\Python27\lib\site-packages\mongoengine-0.8.1-py2.7.egg\mongoengine\base\metaclasses.py", line 331, in new
new_class = super_new(cls, name, bases, attrs)
File "C:\Python27\lib\site-packages\mongoengine-0.8.1-py2.7.egg\mongoengine\base\metaclasses.py", line 119, in new
base.__name__)
ValueError: Document Task_Manager may not be subclassed
python 类在实现了mongoengine后不能被继承是怎么回事?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-04 14:49关注
这是因为在使用 mongoengine 时,定义的每个类都是一个 MongoDB 文档,并且在 mongoengine 中有一个限制,就是文档不能被继承。因此,当你尝试继承一个在 mongoengine 中定义的类时,会出现这种错误。
如果你想让一个类继承另一个类,而这个类已经在 mongoengine 中被定义为文档,则可以使用 Python 的内置关键字 super 来调用父类的方法,而无需继承父类。你可以使用下面的代码来实现这一点:
class Claw_Task: def __init__(self): super(Claw_Task, self).__init__() # your code here
这样,你就可以在 Claw_Task 类中使用 Task_Manager 类的方法,而无需继承 Task_Manager 类。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
- ¥15 牛顿斯科特系数表表示
- ¥15 arduino 步进电机
- ¥20 程序进入HardFault_Handler
- ¥15 oracle集群安装出bug
- ¥15 关于#python#的问题:自动化测试
- ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
- ¥15 教务系统账号被盗号如何追溯设备
- ¥20 delta降尺度方法,未来数据怎么降尺度
- ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效