确定python中的类是否是元类

Ben*_*off 3 python metaclass python-3.x

python中有没有办法确定类对象是否是元类?

我知道您可以使用相等运算符进行检查。元类 == 类型

但这不会涵盖用户定义的元类。

Mar*_*ers 5

测试对象是否是 的子类type

issubclass(MetaClass, type)
Run Code Online (Sandbox Code Playgroud)

这将返回True所有元类,包括type它自己。

演示:

>>> class Meta(type): pass
...
>>> class Foo(object): pass
...
>>> issubclass(Meta, type)
True
>>> issubclass(Foo, type)
False
Run Code Online (Sandbox Code Playgroud)