是否有任何内置的Python类不是type
元类的实例?
>>> type(list)
<type 'type'>
>>> type(dict)
<type 'type'>
>>> type(some_builtin_python_class)
<type 'some_type_other_than_type'>
答案 0 :(得分:4)
取决于你的意思&#34;内置&#34;。如果你的意思是任何C实现的(在CPython中)类暴露为builtins(和builtin
),那么不,它们都没有不同的元类。 *
但是stdlib中确实存在类。例如:
>>> type(collections.abc.Iterable)
abc.ABCMeta
澄清:其他元类当然是类型的子类,因此,通过正常的继承规则,isinstance(Iterable, type)
仍然如此 - 但type(Iterable) == type
不正确}。这是您在问题中要求的内容 - type(T)
返回<type 'some_type_other_than_type'>
的类型。
*无论如何都不在3.x中。 2.x中的情况有所不同,那里有经典的课程,曾经有过,#34;虚假课程&#34;实际上这些函数看起来像type
个实例但不是,并且在调用时返回隐藏type
实例的实例。