15.0 序 在之前的章节中,我们考察的东西都是局限在一个模块(在python中就是module)内。然而现实中,程序不可能只有一个模块,更多情况下一个程序会有多个模块,而模块之间存在着引用和交互,这些引用和交互也是程序的一个重要的组成部分。本章剖析的就是在python中,一个模块是如何加载 ...
. 序 这一章我们就来看看python中类是怎么实现的,我们知道C不是一个面向对象语言,而python却是一个面向对象的语言,那么在python的底层,是如何使用C来支持python实现面向对象的功能呢 带着这些疑问,我们下面开始剖析python中类的实现机制。另外,在python 中存在着经典类 classic class 和新式类 new style class ,但是到Python 中,经 ...
2019-12-23 14:35 4 592 推荐指数:
15.0 序 在之前的章节中,我们考察的东西都是局限在一个模块(在python中就是module)内。然而现实中,程序不可能只有一个模块,更多情况下一个程序会有多个模块,而模块之间存在着引用和交互,这些引用和交互也是程序的一个重要的组成部分。本章剖析的就是在python中,一个模块是如何加载 ...
我闲来翻了翻几年前就买的一本python的书,O'REILLY的【python学习手册】,中译版,很厚。 可惜,我看得非常少,这也是为什么我在简历上关于python顶天也就写个熟悉,就这都担心找虐。虽说java的学习价值更大,但是学了平时用不上,忘得快。再加上做题的时候,感觉还是用python ...
本系列是以陈儒先生的《python源码剖析》为学习素材,所记录的学习内容。不同的是陈儒先生的《python源码剖析》所剖析的是python2.5,本系列对应的是python3.7,所以某些地方会和原著有出入,另外我在介绍的过程中会穿插大量的python代码,不仅仅是介绍如何实现的,还会 ...
楔子 这一次我们就来剖析Python运行字节码的原理,我们知道Python虚拟机是Python的核心,在源代码被编译成PyCodeObject对象时,就将由Python虚拟机接手整个工作。Python虚拟机会从PyCodeObject中读取字节码,并在当前的上下文中执行,直到所有的字节码都被 ...
的手动维护内存的工作中解放出来。这一章我们就来分析python的GC是如何实现的。 17.1 内存管理架 ...
楔子 在上一章中,我们介绍了Python虚拟机中常见的字节码指令。但我们的流程都是从上往下顺序执行的,在执行的过程中没有任何变化,但是显然这是不够的,因为怎么能没有流程控制呢。下面我们来看看Python所提供的流程控制手段,其中也包括异常检测机制。 Python虚拟机中的if控制流 ...
楔子 之前分析了那么久的虚拟机,多少会有点无聊,那么本次我们来介绍一个好玩的,看看如何修改 Python 解释器的底层数据结构和运行时。了解虚拟机除了可以让我们写出更好的代码之外,还可以对 Python 进行改造。举个栗子: 是不是很有趣呢?通过 Python 内置的 ctypes 模块 ...
的,当然也从Python的角度介绍了Python中的协程。 这一次我们说一下Python模块的加载机制 ...