《Python高级编程》学习心得——第二&三章
第二章、一切皆对象
理论
Python中一切皆对象,上图给出了根本性的阐释。具体而言,对象有id,类型,和值三大要素。不妨与Java对比分析Python“一切皆对象”的设计理念:
-
与Java一样,Python中的类也都是继承于同一个基类。在Java中,这个基类是Object,而在Python中,这个基类是object[1]
-
与Java不同的是,Python里对象的类型(即Python内置类型或程序员用class关键字定义的类)也是对象,这些对象是type类的实例[2]
-
那么我们来考查type,根据[1],type类继承object类;根据[2],object和type都是type类的实例,所以type对象是type类的实例。
综上,正是通过type类和type对象自己实例化自己的回环,Python实现了“一切皆对象”。
代码
这一章用的Python语法有:
- 类.__bases__返回类的父类元组(可能有多重继承)
- type(对象)返回对象的类型
下面是一些例子
>>> type(list)
<class 'type'>
>>> list.__bases__
(<class 'object'>,)
>>> type(object)
<class