来自元类的类实例化有什么用?据我了解,通常__init__
,__del__
,__call__
等方法来自默认元类type
。这是对的吗?
答案 0 :(得分:4)
我们不应该谈论继承而是实例化。类与其元类相关的方式与实例与其基类的相关方式相同。 Class是元类的实例。
特别是在元类上定义的每个字段都可以作为"元类字段"从类中访问。因此,如果一个元类用于多个类,那么元类上的字段将在这些类之间共享。
请注意,元类上的__init__
与类上的__init__
不同。这些是无关的。此外,__call__
成为新的"构造函数"。看看这个:
>>> class Meta(type):
... def __call__(self):
... return 1
>>> class Foo(metaclass=Meta):
... pass
>>> Foo()
1