什么可以从元类实例化

What Can be instantiation from a Metaclass

class 从 metaclass 实例化可以做什么?据我了解,通常像__init____del____call__这样的方法来自默认的metaclass type。这是正确的吗?

不谈继承,谈实例化。 Class 与其 metaclass 的关联方式与实例与其基础 class 的关联方式相同。 Class 是 metaclass.

的实例

特别是定义在 metaclass 上的每个字段都可以从 class 作为 "metaclass field" 访问。因此,如果一个 metaclass 用于多个 classes,则 metaclass 上的字段将在这些 classes 之间共享。

请注意,metaclass 上的 __init__ 与 class 上的 __init__ 不同。这些是无关的。 __call__ 也变成了新的 "constructor"。看看这个:

>>> class Meta(type):
...     def __call__(self):
...         return 1

>>> class Foo(metaclass=Meta):
...     pass

>>> Foo()
1