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

. 序 在之前的章节中,我们考察的东西都是局限在一个模块 在python中就是module 内。然而现实中,程序不可能只有一个模块,更多情况下一个程序会有多个模块,而模块之间存在着引用和交互,这些引用和交互也是程序的一个重要的组成部分。本章剖析的就是在python中,一个模块是如何加载 并引用另一个模块的功能的。对于一个模块,肯定要先从硬盘加载到内存。 . import前奏曲 我们以一个简单的i ...

2020-01-06 18:28 0 694 推荐指数:

查看详情

python解释器源码剖析》第13--python虚拟机中的类机制

13.0 序 这一我们就来看看python中类是怎么实现的,我们知道C不是一个面向对象语言,而python却是一个面向对象的语言,那么在python的底层,是如何使用C来支持python实现面向对象的功能呢?带着这些疑问,我们下面开始剖析python中类的实现机制。另外,在python2中 ...

Mon Dec 23 22:35:00 CST 2019 4 592
python解释器源码剖析》第0--python的架构与编译python

本系列是以陈儒先生的《python源码剖析》为学习素材,所记录的学习内容。不同的是陈儒先生的《python源码剖析》所剖析的是python2.5,本系列对应的是python3.7,所以某些地方会和原著有出入,另外我在介绍的过程中会穿插大量的python代码,不仅仅是介绍如何实现的,还会 ...

Thu Sep 12 22:21:00 CST 2019 0 583
python解释器源码剖析》第17--python的内存管理与垃圾回收

17.0 序 内存管理,对于python这样的动态语言是至关重要的一部分,它在很大程度上决定了python的执行效率,因为在python的运行中会创建和销毁大量的对象,这些都设计内存的管理。同理python还提供了了内存的垃圾回收(GC,garbage collection),将开发者从繁琐 ...

Fri Jan 17 01:31:00 CST 2020 3 707
《深度剖析CPython解释器15. Python函数机制的深度解析(第二部分): 函数在底层是如何被调用的

楔子 在上一篇博客中,我们说了Python函数的底层实现,并且还演示了如何自定义一个函数,虽然这在工作中没有太大意义,但是可以让我们深刻理解函数的行为。此外我们还介绍了如何获取函数的参数,而这一次我们就来看看函数如何调用的。 函数的调用 我们以一个非常简单的函数为例,看看它的字节码 ...

Sat Aug 29 07:07:00 CST 2020 4 558
《深度剖析CPython解释器》28. Python内存管理与垃圾回收(第二部分):源码解密Python中的垃圾回收机制

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

Sun Sep 20 07:55:00 CST 2020 6 947
《深度剖析CPython解释器》13. 剖析Python的流程控制语句(if、for、while),以及异常捕获机制

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

Fri Aug 21 09:26:00 CST 2020 0 456
《深度剖析CPython解释器》24. Python运行时环境的初始化、源码分析Python解释器在启动时都做了哪些事情?

楔子 我们之前分析了Python的核心--字节码、以及虚拟机的剖析工作,但这仅仅只是一部分,而其余的部分则被遮在了幕后。记得我们在分析虚拟机的时候,曾这么说过: 当Python启动后,首先会进行 "运行时环境" 的初始化,而关于 "运行时环境" 的初始化是一个非常复杂的过程 ...

Thu Sep 10 05:39:00 CST 2020 5 979
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM