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高级话题 深度剖析了,包括环境的初始化,内存分配等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值