对于非元class classes 和Python 中的非class 对象,是否有任何约定俗成的术语?

Are there any conventional terms for non-metaclass classes and for non-class objects in Python?

Python中对象分为三层:

因此这三个集合之间的关系是适当的包含:metaclasses ⊂ classes ⊂ objects.

示例:

class M(type): pass
class C(metaclass=M): pass
o = C()
Name Metaclass Class Object
M True True True
C False True True
o False False True

non-metaclass classes 是否有任何常规术语(例如示例中的 C ) 和 非 class 对象 (例如示例中的 o)?

对于通过包含相关的集合,这个术语问题很常见。例如,数字有以下关系:自然数⊂整数⊂有理数⊂实数⊂复数。 非自然整数的术语是负整数,非有理实数的术语是无理数。但是我不知道 非整数有理数 非实数复数 .

的任何术语

首先,我认为尝试并断言此 classification.As 没有“3 个级别”会有多大用处,因为可以创建一个“元元 class “ - type 本身是普通元 classes 的元 class 是 class.

的“元元class”

然后,专门针对您的问题,不,“非 class 对象”或“非元 class class 没有广泛使用的单一术语”。然而,当我们谈论适用于“对象”的事物时,它们将适用于所有类型的对象,无论它们是 classes(或 metaclasses)——这就是这些也是对象的实际意义。

例如,如果有人说“对象的属性分配最终将由该对象的 __dict__ 属性中的条目表示”- 这对您列出的所有三种对象都有效。以此类推,对于 大多数 事物,以及在少数情况下,您必须从提出的任何概念中排除 classes 或 metaclasses,您可以只是明确一点: “相反,您可以在对象的 __dict__ 中创建一个条目,并让该条目像分配的属性一样工作。但是,这不适用于 classes,因为它们的 __dict__ 是一个特殊的代理不允许分配以确保所有特殊属性分配都反映在正确的 class' 插槽中的实例。"

因此,就像处理数字一样,您可以在少数情况下仅提及“非 class 对象”或“非元 class classes”这是需要的。