2016-11-17 121 views

回答

4

我们不应该谈论继承,而是实例化。类与其元类的相关性与实例与其基类有关。类是元类的一个实例。

特别是在元类上定义的每个字段都可以从类中作为“元类字段”访问。因此,如果一个元类用于多个类,则元类中的字段将在这些类之间共享。

请注意,元类上的__init__与类上的__init__不一样。这些是无关的。 __call__也成为一个新的“构造函数”。看看这个:

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

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

>>> Foo() 
1 
+0

所以'__init__' __del__' __new__'在默认元类'type'上定义为它的元类字段。我对吗? –

+0

@RavinduShantha是的。 – freakish

+0

@怪异的谢谢 –

相关问题