您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么我不能从Python中的dict AND Exception继承?

为什么我不能从Python中的dict AND Exception继承?

两者Exceptiondict都在C中实现。

我认为您可以按照以下方式进行测试:

>>> class C(object): pass
...
>>> '__module__' in C.__dict__
True
>>> '__module__' in dict.__dict__
False
>>> '__module__' in Exception.__dict__
False

由于Exception并且dict对如何在内部存储它们的数据有不同的想法,因此它们不兼容,因此您不能同时从两者继承。

在更高版本的Python中,尝试定义类时应获得Exception:

>>> class foo(dict, Exception):
...     pass
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Error when calling the Metaclass bases
    multiple bases have instance lay-out conflict
python 2022/1/1 18:48:34 有345人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶