在python中一切皆对象,实例对象是由类创建的,类(又称类对象)是由元类创建的。 通常我们用type函数来检查一个对象是什么类型。
print(type(1))
print(type('a'))
print(type([1, 2, 3]))
class Foo:
pass
foo = Foo()
print(type(foo))
输出结果:
<class 'int'>
<class 'str'>
<class 'list'>
<class '__main__.Foo'>
上面结果显示了python的一些内置数据类型,以及我自定义的一个类。那么既然一切皆对象,这些内置类型,以及我自定义的Foo类对象本身又是什么类型呢?
print(type(type(1)))
print(type(type('a')))
print(type(type([1, 2, 3])))
print(type(Foo))
print(type(object))
输出结果:
<class 'type'>
<class 'type'>
<class 'type'>
<class 'type'>
<class 'type'>
注意,所有这些内置类型的类型都是type。Foo类的类型不是object,而是type,就连所有类的基类object的类型都是type。而且,type自己的类型也是type。print(type(type))
输出结果是 <class 'type'>
。