18|类型对象:虚拟机如何识别对象的类型?
海纳
你好,我是海纳。
到目前为止,我们已经实现了 Python 虚拟机中最重要的四个基本类型,也就是整数、字符串、列表和字典。为了实现这些基本类型,我们已经完成了很多类和对象的相关机制。其中包括打印、比较等常规的通用操作,也包括对数据元素的增删查改,以及排序、遍历等操作。
接下来的三节课,我们准备实现完备的对象系统,从而实现面向对象编程的大部分能力。前边的课程,每一段代码都能实现一个具体的功能,但从这一节课开始,内容会变得有点抽象。如果你学一遍不能理解的话,也不用灰心,可以静下心来多读几遍,想一想如果这个特性让你自己设计还有没有更好方法。慢慢的你就能理解了。
面向对象编程这一部分包括自定义类型、运行时判断对象类型、继承、函数和操作符重载等特性。这一节课我们先从类型说起。
实现类型对象
从刚开始学习编程的时候,我们就一直在和类型打交道。例如,我们说一个整型变量,其实就是指某个变量,它的类型是整型。
不同语言对于类型的处理非常不一样。有的语言是静态编译阶段决定的,运行时不能再修改,有的语言则支持运行时修改变量的类型。有的语言不需要程序员指定变量类型,还有的语言有复杂的类型推断系统帮助程序员简化开发。总之,每种语言对自己的类型系统都有独到的设计。那 Python 中的类型是如何设计的呢?
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. Python虚拟机中实现了最重要的四个基本类型:整数、字符串、列表和字典。 2. 实现了类型对象的内建表,使得虚拟机可以正确执行print(list)等语句。 3. 实现了公共基类 object,为后续功能的实现做准备。 4. 实现了 TypeObject,每一个 Klass 都有一个对应的 TypeObject,完善了类的继承机制。 5. 实现了通过类型创建对象的能力,通过类型对象创建对象的功能。 6. 对象系统的重构工作基本完成,包括整数、字符串、列表和字典。 7. 实现了继承体系,所有的 Python 对象都是 object 的派生类。 8. 实现了 isinstance 方法,用于检查一个对象是否是某一种类型的实例。 9. 实现了 type 函数,用于返回一个对象的类型。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手写 Python 虚拟机》,新⼈⾸单¥59
《手写 Python 虚拟机》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论