手写 Python 虚拟机
海纳
华为资深编译专家,原 Huawei JDK 团队负责人
1199 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 22 讲/共 28 讲
导学|直播加餐:三小时掌握C++ (3讲)
手写 Python 虚拟机
15
15
1.0x
00:00/00:00
登录|注册

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
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)