世间具有共同特性的东西,我们可以将其归为一类,为它起个名字,叫吃的,喝的。。。但他们并不是具体的事物,而是抽象的名词。python中的类型(type)和对象(object)同样是抽象名词,type用来描述object具有哪些共同的属性,比如说苹果(object),香蕉(object),他们都能吃,可以把他们归为”吃的”类(type),能吃是它们的一个属性,当然他们还有其他属性,也可根据其他属性归类。
python中的每个object都具有一个class属性,他的值是一个type类型的实例,是一个实际对象,这个实力描述了这个类型的名称,属性和有哪些方法,比如说怎么吃,包皮吃还是直接吃。一只猪和一只狗是两个实际的object,它们是动物,那就让他们的class指向动物类型(type)的一个实例。每个type实例都有一个base属性,这是指继承于上一级的属性,比如动物和人,人是动物的一个子类,动物都有吃的属性,但人具有说话的属性。对于动物和人有两个类(type),animal和human,在ainimal中有吃的属性,在human中有说话的属性,当实例化一个human时,我们要调用吃的方法,会在human中定义查找这个方法,没有找到,那么就看看human.base中有哪些类,找到了动物,在animal的定义中找到了吃的属性,那么就调用这个属性。
值得我们记住的就是在python中所有的东西都是对象,他们都继承自object,既然都是对象,那么他们就都具有type属性(class)。object也不例外,它的class就是type。如果object是一头猪,那么class可能就是一个type的实例————动物。type也是一个对象,它的class就是type。
其实可以这样简单理解,我们所定义类型(class)或系统内建的类型(class)都是type的实例,我们用到的实例化后得到的东西是type的实例的实例,并且这些class都继承于class object。
这是我的个人理解,如有不对之处欢迎指出。…
python中类与类型的统一是指什么
发布于