在C++,JAVA,C#等面向对象语言中, 类的实例 是 一个对象。
在Python中, 类的实例 是 一个对象,这个没有问题,object类是一切类的父类,这也没什么问题。
但是, type类有点元类的意思,我个人理解为 int,float,object , Animal等类 是 type元类的 一个实例(是一种类型)。
#一切皆对象
print(object.__base__) #object类没有父类 None
print(object.__class__) #object类 的元类是 type
print(type.__base__) #type元类 的父类是 object
print(type.__class__) #type元类 的元类是 type
class Animal(object): #自定义类
pass
print( Animal.__base__) #Animal类 的父类是 object
print( Animal.__class__) #Animal类 的元类是 type
print("-----------------------------------")
# <class 'type'>是所有类型的类 ,元类
print(type(int)) #<class 'type'>
print(type(float)) #<class 'type'>
print(type(complex)) #<class 'type'>
print(type(object)) #<class 'type'>
print(type(tuple)) #<class 'type'>
print(type(list)) #<class 'type'>
print(type(dict)) #<class 'type'>
print(type(type)) #<class 'type'>
print(type(Animal)) #<class 'type'>
print("-----------------------------------")
# 各种类型的实例
print(type(123)) #<class 'int'>
print(type(0.123)) #<class 'float'>
print(type(complex(1,2))) #<class 'complex'>
print(type(object())) #<class 'object'>
print(type((1,2,3))) #<class 'tuple'>
print(type([1,2,3])) #<class 'list'>
print(type({"1":11,"2":"22"})) #<class 'dict'>
a=Animal()
print(type(a)) #<class 'Animal'>
def fun():
pass
print(type(fun)) #<class 'function'>
运行截图: