Python源码剖析:前言
第0章:前言
0.0 我的前言
在几个月学习的中,已经学习了python基本、进阶的语法,如果有读者不清楚的话,可以参考我之前的专栏《python进阶》。
而在这个专栏《python源码》中,我将以作者陈儒的《Python源码剖析》一书为基础,学习python的源码。
学习底层实现,作为一个高级程序员的必经之路,是一道绕不开的槛,只停留在代码的使用上,是很难保持核心竞争力的,因为语言是一直在变的,但是底层的思想是不变的。
学习准备:
- Python2.5.2源码(注意是源码,MSI文件格式安装的形式,是隐蔽了一些文件夹的)
这是下载网址:https://www.python.org/downloads/source/ 找到2.5.2版本即可,tgz格式
- 一定的C和C++基础
了解基本语法即可,博主也只是简单学习过C,所以不用担心,不清楚的地方我会讲清楚
- 会Linux系统或者Windows的VS
博主最近Linux使用的比较多,因此我会使用Linux开始学习
python2.5.2源码编译、安装:
# 解压
tar -zxf Python2.5.2.tgz
# 安装依赖包,ubuntu的操作方式会有些许不同
yum install -y gcc zlib zlib-devel openssl-devel readline readline-devel
# 进到解压的文件的目录中去
cd Python-2.5.2
# 指定程序存放位置,我这里新开了一个user(python25)放python环境,方便管理
./configure --predix= /home/python25/python2.5.2
# 编译
make
# 安装
make install
# 将python2.5.2添加到环境中
ln -s /home/python25/python2.5.2/bin/python2.5 /bin
# 输入python2.5看是否成功
python2.5
0.1 Python总体架构
想要学明白就要先了解大体框架,如下图,我们从左到右分析- 最左边的File Groups· Modules 全部为C语言编写,这部分都是对速度有严格要求的模块· Library 此部分由Python编写的模块,对速度要求不严格· User-Defined Modules 用户自定义模块- 最中间的Python Core· Scanner 词法分析· Parser 语法分析,会建立抽象语法树(AST)· Compiler 根据AST生成指令集和,即Python字节码· Core Evauator 执行这些字节码· 这一部分也可以称为Python虚拟机- 最右侧的对象/类型系统,内存分配器,运行时状态信息· 这部分可以看到和python core有很多箭头,就代表了在这过程中,解释器的状态不断变换· 这一块也可以理解为Python的动态链接
0.2 后续计划
对框架有了了解,因此我们就可以明确我们的学习计划了,分为三个章节1.Python内建对象 整数、列表等等2.Python虚拟机 虚拟机运行原理3.Python高级话题 深度剖析了,包括环境的初始化,内存分配等
Python源码剖析:前言相关推荐
- Python源码剖析[16] —— Pyc文件解析
Python源码剖析[16] -- Pyc文件解析 2008-02-28 18:29:55| 分类: Python |举报 |字号 订阅 Python源码剖析 --Pyc文件解析 本文作者: Rob ...
- python源码剖析 豆瓣_在数据分析师的分析中豆瓣的书那些值得读
最近总是有人问我有什么书好推荐看看,特烦.但是看到那么多人问,看来挺多人有这个需求,便想了一下,如何通过数据分析找到值得看的书.通过爬取某个标签例如产品,运营获取对应已经打了标签的书,获取书对应的评分 ...
- Python发展的新时代—冯大辉先生谈《Python源码剖析》
Python 3.0 beta 1终于在 6 月 18 号发布了,依照Python一贯主张的简洁,标准,统一精神,Beta版的新特性让我们惊喜的发现,Python正如我们所期望的那样已经进入了一个蓬勃 ...
- Python源码剖析[1] —— 编译Python
[ 绝对原创,转载请注明出处] 注意 :第一部分Python总体架构采用了网络文档<The Architecture of Python>,这是网络上唯一可见的以剖析Python实现为己任 ...
- 《Python源码剖析》读书笔记
<Python源码剖析>电子书下载 http://download.csdn.net/detail/xiarendeniao/5130403 Python源码在官网有下载链接,用ctags ...
- Python源码剖析2-字符串对象PyStringObject
二. 1.PyStringObject与 PyString_Type PyStringObject是变长对象中的不可变对象.当创建了一个PyStringObject对象之后,该对象内部维护的字符串就不 ...
- python源码剖析代码例子_Python源码剖析笔记5-模块机制
python中经常用到模块,比如import xxx,from xxx import yyy这样子,里面的机制也是需要好好探究一下的,这次主要从黑盒角度来探测模块机制,源码分析点到为止,详尽的源码分析 ...
- 《Python源码剖析》上架
经过几年的打磨,在博文视点的大力支持下,<Python源码剖析>终于上架了.当年开始剖析Python源码的时候,对于出版,心里只有一个朦朦胧胧的梦想,甚至可以说是幻想,现在幻想成真,回想一 ...
- python源码剖析—— python中的列表对象
1. PyListObject对象 PyListObject 对象可以有效地支持插入,添加,删除等操作,在 Python 的列表中,无一例外地存放的都是 PyObject 的指针.所以实际上,你可以这 ...
最新文章
- python常见错误-新手常见Python错误及异常解决处理方案
- CVPR 2019 GCT:《Graph Convolutional Tracking》论文笔记
- 采用加密技术进行数据保护的5大优势
- 用jquery校验radio单选按钮(原创)
- HDU 1978 How many ways DP问题
- 440. 字典序的第K小数字
- c语言 为什么i%3cn 1,c语言中n+1个基础且容易出错的知识点
- 开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !...
- python全栈之巅_Python 迭代器、生成器详解 - Python全栈之巅
- ubuntu 网络设置
- 随机游走问题的神奇应用(一)
- LeaRun低代码平台快速开发工程项目管理软件
- 线性代数-距离公式汇总
- 用python画一个机器猫歌词_手把手 | 用Python语言模型和LSTM做一个Drake饶舌歌词生成器-阿里云开发者社区...
- python 正则表达式 ,看这篇就够了
- esxi - 加装vmware titan xp显卡配置
- 什么是MTTF、MTBF、MTTR
- 平面设计中的插画设计技巧
- 推荐一款实用的用户画像工具--快鲸scrm
- 阿里云的服务器,网站域名没有备案时为什么不可以访问?
热门文章
- 【知识兔】Excel还可以翻译,强大到爆
- 中坚力量!中睿天下入选《2022年中国数字安全百强报告》
- 办公自动化,批量插入电子印章
- MSI-B560M-BOMBER i5-10400 核显 电脑 Hackintosh 黑苹果efi引导文件
- 第一章 离散随机信号 笔记
- 他是马斯克最崇拜的男人,11次婉拒诺奖,被称作神,却死于贫穷
- dotnet C# 如何正确获取藏文的字数
- Windows10安装SQL server 2016/2014 失败解决方法( 错误代码: 0x851A0019)
- 如何判断一个点是否落在一个平面内
- 短短两个月 Snapchat下载量下跌了22%