第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源码剖析:前言相关推荐

  1. Python源码剖析[16] —— Pyc文件解析

    Python源码剖析[16] -- Pyc文件解析 2008-02-28 18:29:55|  分类: Python |举报 |字号 订阅 Python源码剖析 --Pyc文件解析 本文作者: Rob ...

  2. python源码剖析 豆瓣_在数据分析师的分析中豆瓣的书那些值得读

    最近总是有人问我有什么书好推荐看看,特烦.但是看到那么多人问,看来挺多人有这个需求,便想了一下,如何通过数据分析找到值得看的书.通过爬取某个标签例如产品,运营获取对应已经打了标签的书,获取书对应的评分 ...

  3. Python发展的新时代—冯大辉先生谈《Python源码剖析》

    Python 3.0 beta 1终于在 6 月 18 号发布了,依照Python一贯主张的简洁,标准,统一精神,Beta版的新特性让我们惊喜的发现,Python正如我们所期望的那样已经进入了一个蓬勃 ...

  4. Python源码剖析[1] —— 编译Python

    [ 绝对原创,转载请注明出处] 注意 :第一部分Python总体架构采用了网络文档<The Architecture of Python>,这是网络上唯一可见的以剖析Python实现为己任 ...

  5. 《Python源码剖析》读书笔记

    <Python源码剖析>电子书下载 http://download.csdn.net/detail/xiarendeniao/5130403 Python源码在官网有下载链接,用ctags ...

  6. Python源码剖析2-字符串对象PyStringObject

    二. 1.PyStringObject与 PyString_Type PyStringObject是变长对象中的不可变对象.当创建了一个PyStringObject对象之后,该对象内部维护的字符串就不 ...

  7. python源码剖析代码例子_Python源码剖析笔记5-模块机制

    python中经常用到模块,比如import xxx,from xxx import yyy这样子,里面的机制也是需要好好探究一下的,这次主要从黑盒角度来探测模块机制,源码分析点到为止,详尽的源码分析 ...

  8. 《Python源码剖析》上架

    经过几年的打磨,在博文视点的大力支持下,<Python源码剖析>终于上架了.当年开始剖析Python源码的时候,对于出版,心里只有一个朦朦胧胧的梦想,甚至可以说是幻想,现在幻想成真,回想一 ...

  9. python源码剖析—— python中的列表对象

    1. PyListObject对象 PyListObject 对象可以有效地支持插入,添加,删除等操作,在 Python 的列表中,无一例外地存放的都是 PyObject 的指针.所以实际上,你可以这 ...

最新文章

  1. python常见错误-新手常见Python错误及异常解决处理方案
  2. CVPR 2019 GCT:《Graph Convolutional Tracking》论文笔记
  3. 采用加密技术进行数据保护的5大优势
  4. 用jquery校验radio单选按钮(原创)
  5. HDU 1978 How many ways DP问题
  6. 440. 字典序的第K小数字
  7. c语言 为什么i%3cn 1,c语言中n+1个基础且容易出错的知识点
  8. 开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !...
  9. python全栈之巅_Python 迭代器、生成器详解 - Python全栈之巅
  10. ubuntu 网络设置
  11. 随机游走问题的神奇应用(一)
  12. LeaRun低代码平台快速开发工程项目管理软件
  13. 线性代数-距离公式汇总
  14. 用python画一个机器猫歌词_手把手 | 用Python语言模型和LSTM做一个Drake饶舌歌词生成器-阿里云开发者社区...
  15. python 正则表达式 ,看这篇就够了
  16. esxi - 加装vmware titan xp显卡配置
  17. 什么是MTTF、MTBF、MTTR
  18. 平面设计中的插画设计技巧
  19. 推荐一款实用的用户画像工具--快鲸scrm
  20. 阿里云的服务器,网站域名没有备案时为什么不可以访问?

热门文章

  1. 【知识兔】Excel还可以翻译,强大到爆
  2. 中坚力量!中睿天下入选《2022年中国数字安全百强报告》
  3. 办公自动化,批量插入电子印章
  4. MSI-B560M-BOMBER i5-10400 核显 电脑 Hackintosh 黑苹果efi引导文件
  5. 第一章 离散随机信号 笔记
  6. 他是马斯克最崇拜的男人,11次婉拒诺奖,被称作神,却死于贫穷
  7. dotnet C# 如何正确获取藏文的字数
  8. Windows10安装SQL server 2016/2014 失败解决方法( 错误代码: 0x851A0019)
  9. 如何判断一个点是否落在一个平面内
  10. 短短两个月 Snapchat下载量下跌了22%