Python源码剖析(高清PDF 下载)

c#小王子 c#小王子 2021-05-11 4997 软件,编程,Python


Python源码剖析(高清PDF 下载)


作为主流的动态语言,Python不仅简单易学、移植性好,而且拥有强大丰富的库的支持。此外,Python强大的可扩展性,让开发人员既可以非常容易地利用C/C++编写Python的扩展模块,还能将Python嵌入到C/C++程序中,为自己的系统添加动态扩展和动态编程的能力。实践证明,在数据挖掘、图像处理、网络游戏,以及 Web开发等领域的开发实践中,采用Python都能极大地提高开发的效率。


为了更好地利用Python语言,无论是使用Python语言本身,还是将Python与C/C++交互使用,深刻理解 Python的运行原理都是非常重要的。本书以CPython为研究对象,在C代码一级,深入细致地剖析了Python的实现。本书不仅包括了对大量Python内置对象的剖析,更将大量的篇幅用于对Python虚拟机及Python高级特性的剖析。通过此书,读者能够透彻地理解Python中的一般表达式、控制结构、异常机制、类机制、多线程机制、模块的动态加载机制、内存管理机制等核心技术的运行原理,同时,本书所揭示的动态语言的核心技术对于理解其他动态语言,如JavaScript、Ruby等也有较大的参考价值。


本书的主要特点


一本深入剂析Pvthon具体实现的著作

内容新鲜,采用最新的Python语言版本(V2.5)

大量的图表形象地展示Pvthon内部的运作机理

在原理介绍的同时,带领读者一起动手对Python虚拟机进行改造

完整覆盖Python所有的核心议题,深刻揭示Python与C/C++之间如何互动


内 容 简 介


作为主流的动态语言,Python 不仅简单易学、移植件好,而目拥有强大丰富的库的支持。此外, Python 强大的可扩展性,让开发人员既可以非常容易地利用 C/C++编写 Python 的扩展模块,还能将 Python 嵌入到 C/C++程序中,为自己的系统添加动态扩展和动态编程的能力。


为了更好地利用 Python 语言,无论是使用 Python 语言本身,还是将 Python与 C/C++交互使用,深刻理解 Python 的运行原理都是非常重要的。本书以 CPython 为研究对象,在C代码一级,深入细致地削析了Python的实现。书中不仅包括了对大量Pvthon内置对象的部析,更将大量的篇幅用于对Python虚拟机及 Python 高级特性的剖析。通过此书,读者能够透彻地理解 Pvthon 中的一般表达式、控制结构、异常机制、类机制、多线程机制、模块的动态加载机制、内存管理机制等核心技术的运行原理,同时,本书所揭示的动态语高的核心技术对于理解其他动态语言,如 Javascript、Ruby 等也有较大的参考价值。


本书适合于Python 程序员、动态语言爱好者、C 程序员阅读。


第0章 准备工作


Python 源码剖析—-编译 Python


在开始分析 Python 的实现之前,我们有许多的准备工作要做。比如,首先应该了解一下 Python 的整体架构,以期对 Python 的实现有一个宏观的认识。此外,我们还要介绍如何从源代码编译出 Python 可执行程序。因为在整个剖析源码的过程中,一个最好的学习方法就是不断根据掌握的知识修改 Python 的源代码,以印证自己的猜想和知识。因此,本章的目的是为进入 Python 源码剖析做一个充足的准备。


0.1 Python 总体架构


在最高的层次上,Python 的整体架构可以分为三个主要的部分,整个架构如图 0-1 所示。在图的左边,是 Python 提供的大量的模块、库以及用户自定义的模块。比如在执行import os 时,这个os 就是 Python 内建的模块,当然用户还可以通过自定义模块来扩展 Python 系统。


在图0-1的右边,是 Python 的运行时环境,包括对象/类型系统(Object/Type structures)、内存分配器(Memory Allocator)和运行时状态信息(Current State of Python)。运行时状态维护了解释器在执行字节码时不同的状态(比如正常状态和异常状态)之间切换的动作,我们可以将它视为一个巨大而复杂的有穷状态机。内存分配器则全权负责 Python 中创建对象时,对内存的申请工作,实际上它就是 Python 运行时与C中ma11oc 的一层接口。而对象/类型系统则包含了 Python 中存在的各种内建对象,比如整数、1ist 和 aict,以及各种用户自定义的类型和对象。


在中间的部分,可以看到 Python 的核心——解释器(interpreter),或者称为虚拟机。在解析器中,箭头的方向指示了Python 运行过程中的数据流方向。其中 Scanner 对应词法分析,将文件输入的 Python 源代码或从命令行输入的一行行 Python 代码切分为一个的 token; Parser 对应语法分析,在 Scanner 的分析结果上进行语法分析,建立抽象语法树(AST); Compiler 是根据建立的 AST生成指令集合——Python 字节码(byte code),就像 Java 编译器和 C#编译器所做的那样;最后由 Code Evaluator 来执行这些字节码。因此, Code Evaluator 又可以被称为虚拟机。


图中,在解释器与右边的对象/类型系统、内存分配器之间的箭头表示"使用"关系;而与运行时状态之间的箭头表示"修改"关系,即 Python 在执行的过程中会不断地修改当前解释器所处的状态,在不同的状态之间切换。



0.2 Python 源代码的组织


中国有句老话——巧妇难为无米之炊。要分析 Python 源码,首先要获得 Python 源码。 Python 源码可以从 Python 的官方网站自由下载。当前 Python的最新发布版本是2.5.2,在本书中,我们剖析的对象是2006 年12 月 19 日正式发布的 Python 2.5。



【下载地址】

链接:https://pan.baidu.com/s/17DzXtyl-__6LI6lOz3qMBQ

提取码:g0jy


相关文章


R基础及应用-大数据分析(高清PDF 下载)

为了更好地适应新形势,满足读者对大数据分析处理学习的迫切需要,我们推出了《大数据分析 ∶ R基础及应用》一书 ,力求使读者能够从中了解大数据

《R数据科学》高清中/英文版PDF+源代码

读完本书后,你将掌握R语言的精华,并能够熟练使用多种工具来解决各种数据科学难题。

用Python写网络爬虫(高清PDF 下载)

网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始, 获得初始

用Python进行自然语言处理(高清PDF 下载)

通过它,你将学到如何写能处理大量非结构化文本的 Python 程序。你将获得有丰富标注的涵盖语言学各种数据结构的数据集,而且你将学到分析书面

简明python教程(高清PDF下载)

本书可以作为Python编程语言的一本指南或者教程。它主要是为新手而设计,不过对于有经验的程序员来说,它同样有用。

集体智慧编程-python算法应用(高清PDF 下载)

本书以机器学习与计算统计为主题背景,专门讲t述如何挖掘和分析 Web,上的数据和资源,如何分析用户体验、市场营销、个人品味等诸多信息,并得出

编程小白的第一本+python+入门书(高清PDF下载)

为了能让更多的编程小自轻松地入门编程,我把高效学习法结合 Pvthon 中的核心知识,写成了这本书。随意翻上几页,你就会发现这本书和其他编程

笨办法学.Python.(第三版)(高清PDF下载)

本书结构非常简单,其实就是 52 个习题。其中 26 个覆盖了输入输出、变量、以及函数三个课题,另外 26个覆盖了一些比较高级的话题,如条件

Python源码剖析(高清PDF 下载)

本书以CPython为研究对象,在C代码一级,深入细致地剖析了Python的实现。本书不仅包括了对大量Python内置对象的剖析,更将大量的

Python学习手册(第4版)(中文版高清PDF 下载)

本书是学习Python编程语言的入门书籍。Python是一种很流行的开源编程语言,可以在各种领域中用于编写独立的程序和脚本。Python免费

Python算法教程_中文版(高清PDF下载)

本书用 Python 语言来讲解算法的分析和设计。本书主要关注经典的算法,但同时会为读者理解基本算法问题和解决问题打下很好的基础。全书共 1

Python数据分析基础(高清PDF下载)

本书面向的读者是那些经常使用电子表格软件进行数据处理,但从未写过一行代码的人。前几章会教你设置 Python 运行环境,告诉你计算机是如何看

Python神经网络编程中英文(高清PDF下载)

神经网络是一种模拟人脑的神经网络,以期能够实现类人工智能的机器学习技术。本书揭示神经网络背后的概念,并介绍如何通过Pvthon实现神经网络。

Python入门指南 (中英文版高清PDF下载)

Python 是一种容易学习的强大的编程语言。它包含了高效的高级数据结构,能够用简单而高效的方式进行面向对象编程。Python 优雅的语法和

PYTHON入门经典_超高清pdf

本书是面向 Python 初学者的学习指南,详细介绍了 Python 编程基础,以及一些高级概念,如面向对象编程。


文章热度: 166291
文章数量: 333
推荐阅读

FlashFXP绿色版网盘下载,附激活教程 1738

FlashFxp百度网盘下载链接:https://pan.baidu.com/s/1MBQ5gkZY1TCFY8A7fnZCfQ。FlashFxp是功能强大的FTP工具

Adobe Fireworks CS6 Ansifa绿色精简版网盘下载 1539

firework可以制作精美或是可以闪瞎眼的gif,这在广告领域是需要常用的,还有firework制作下logo,一些原创的图片还是很便捷的,而且fireworks用法简单,配合dw在做网站这一块往往会发挥出很强大的效果。百度网盘下载链接:https://pan.baidu.com/s/1fzIZszfy8VX6VzQBM_bdZQ

navicat for mysql中文绿色版网盘下载 1605

Navicat for Mysql是用于Mysql数据库管理的一款图形化管理软件,非常的便捷和好用,可以方便的增删改查数据库、数据表、字段、支持mysql命令,视图等等。百度网盘下载链接:https://pan.baidu.com/s/1T_tlgxzdQLtDr9TzptoWQw 提取码:y2yq

火车头采集器(旗舰版)绿色版网盘下载 1690

火车头采集器是站长常用的工具,相比于八爪鱼,简洁好用,易于配置。火车头能够轻松的抓取网页内容,并通过自带的工具对内容进行处理。站长圈想要做网站,火车头采集器是必不可少的。百度网盘链接:https://pan.baidu.com/s/1u8wUqS901HgOmucMBBOvEA

Photoshop(CS-2015-2023)绿色中文版软件下载 1805

安装文件清单(共46G)包含Window和Mac OS各个版本的安装包,从cs到cc,从绿色版到破解版,从安装文件激活工具,应有尽有,一次性打包。 Photoshop CC绿色精简版 Photoshop CS6 Mac版 Photoshop CC 2015 32位 Photoshop CC 2015 64位 Photoshop CC 2015 MAC版 Photoshop CC 2017 64位 Adobe Photoshop CC 2018 Adobe_Photoshop_CC_2018 Photoshop CC 2018 Win32 Photoshop CC 2018 Win64

知之

知之平台是全球领先的知识付费平台。提供各个领域的项目实战经验分享,提供优质的行业解决方案信息,来帮助您的工作和学习

使用指南 建议意见 用户协议 友情链接 隐私政策 Powered by NOOU ©2020 知之