为什么`object()`没有`dict``来支持一些没有`dict``属性的自定义Python类的实例?

为什么`object()`没有`dict``来支持一些没有`dict``属性的自定义Python类的实例?,python,python-3.x,Python,Python 3.x,从 object()不支持实例属性,因为它是所有自定义Python类的基础,而这些类必须 “它是所有自定义Python类的基础”中的“它”是指类对象还是其实例对象()?我猜类对象 因为它是object而不是object()这是所有自定义Python类的基础,所以它也是object而不是object()当类定义\uuu插槽时,哪些类必须支持某些自定义Python类的实例没有\uuu dict\uuu属性 因此,我如何理解object()没有\uuuuu dict\uuuu是为了支持一些自定义Pyt

object()
不支持实例属性,因为它是所有自定义Python类的基础,而这些类必须

“它是所有自定义Python类的基础”中的“它”是指类
对象
还是其实例
对象()
?我猜类
对象

因为它是
object
而不是
object()
这是所有自定义Python类的基础,所以它也是
object
而不是
object()
当类定义
\uuu插槽时,哪些类必须支持某些自定义Python类的实例没有
\uuu dict\uuu
属性

因此,我如何理解
object()
没有
\uuuuu dict\uuuu
是为了支持一些自定义Python类的实例,而这些类在定义
\uuu dict\uuu
时没有
属性


谢谢。

是的,你的理解是正确的。
对象
的子类可能不希望其实例有一个
\uuu dict\uuu
,但如果
对象
实例有一个,则其子类实例也会有一个

问题主要在于
object
是Python中所有其他类的父类。如果它的设计使其实例具有
\uuuuu dict\uuuu
,则所有类的所有实例都将继承
\uuuuu dict\uuuuu

根据:

当从没有
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
的类继承时,该类的
\uuuuuuuuuuuuuuuuu
属性将始终是可访问的,因此子类中的
\uuuuuuuuuuuuuuuuuuuuuuu

措辞有点不准确;从技术上讲,由于所有类都从
对象继承(缺少
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
),这意味着所有实例都会有
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu(未能为内置类型(如
对象
)提供
\uuuu dict\uuuuuuuuuuuuu
,或在用户定义的类上使用
\uuuuuuu slot\uuuuuu
抑制它),则对于树中未能抑制
\uuuuuu dict\uuuu
的第一个类的实例以及它的所有子类,即使它们试图使用
\uuuu slots\uuuu
抑制
\uuuuu dict\uuuuu
,也将存在一个
\uuuuu dict\uuuuuu

基本上,如果
object
实例有
\uuuuu dict\uuuuuu
,所有类的所有实例都会有它;通过在
object
上抑制它,
object
的子类(读取:所有类)保留有无
\uuuuuuu dict
的选项