原文:《深度剖析CPython解释器》23. 剖析Python中模块的导入机制、Python是如何加载模块的

楔子 上一篇我们介绍了生成器,本来这里应该介绍协程的,但是大致阅读了一下,感觉如果从源码的角度来介绍协程的话,工作量太大。而且个人精力有限,所以推荐我写的这一篇博客:https: www.cnblogs.com traditional p .html,是用来介绍asyncio的,当然也从Python的角度介绍了Python中的协程。 这一次我们说一下Python模块的加载机制,我们之前所考察的所有 ...

2020-09-06 06:30 3 630 推荐指数:

查看详情

python解释器源码剖析》第15章--python模块的动态加载机制

15.0 序 在之前的章节,我们考察的东西都是局限在一个模块(在python中就是module)内。然而现实,程序不可能只有一个模块,更多情况下一个程序会有多个模块,而模块之间存在着引用和交互,这些引用和交互也是程序的一个重要的组成部分。本章剖析的就是在python,一个模块是如何加载 ...

Tue Jan 07 02:28:00 CST 2020 0 694
深度剖析CPython解释器》13. 剖析Python的流程控制语句(if、for、while),以及异常捕获机制

楔子 在上一章,我们介绍了Python虚拟机中常见的字节码指令。但我们的流程都是从上往下顺序执行的,在执行的过程没有任何变化,但是显然这是不够的,因为怎么能没有流程控制呢。下面我们来看看Python所提供的流程控制手段,其中也包括异常检测机制Python虚拟机的if控制流 ...

Fri Aug 21 09:26:00 CST 2020 0 456
深度剖析CPython解释器》10. Python的PyCodeObject对象与pyc文件

楔子 当我们想要执行一个py文件的时候,只需要python xxx.py即可,但是你有没有想过这背后的流程是怎么样的呢?从这里开始我们就开始进入到Python虚拟机的环节了,之前都是在介绍Python的一些内置对象,不过虚拟机的执行流程、以及背后的原理却更是值得我们关注的。 这里我们先来 ...

Sat Aug 15 10:31:00 CST 2020 0 642
深度剖析CPython解释器》28. Python内存管理与垃圾回收(第二部分):源码解密Python的垃圾回收机制

楔子 现在绝大部分的语言都实现了垃圾回收机制,这其中也包括Python,而不同的语言采用的垃圾回收算法也各不相同。那么,常见的垃圾回收算法都有哪些呢? 引用计数法(reference count): 记录对象的被引用次数, 引用计数降为0时回收 标记-清除法(mark-sweep ...

Sun Sep 20 07:55:00 CST 2020 6 947
深度剖析CPython解释器》5. 解密Python的整数在底层是如何实现的,以及为什么Python中大整数的运算不会溢出

楔子 这次我们来分析一下Python的整数是如何实现的,我们知道Python的整数是不会溢出的,换句话说,它可以计算无穷大的数。只要你的内存足够,它就能计算,但是对于C来说显然是不行的,可Python底层又是C实现的,那么它是怎么做到整数不会溢出的呢? 既然想知道答案,那么看一下 ...

Wed Aug 05 08:29:00 CST 2020 6 1062
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM