【无标题】

python 源码刨析

当这一章节有幸被你看见,那说明你即将从python入门跨往精通。你是否有这样的困惑,当你这个阶段已经掌握了python 基础语法,对于日常搬砖也游刃有余,似乎自己已经爬上了python这座大山山顶,年轻人不要被眼前的风景所迷惑,背上你的本打算驻足的行囊继续前行吧。当你想真正的揭开python神秘的面纱,一睹她的芳容,你绕不开的必将是源码,当你理解了吉多·范罗苏姆(Guido van Rossum,1956年1月31日)的思想,你会感叹大神思考问题方法的美妙,就像你看漫威英雄拯救世界一样。

1.0 python 架构

主要分为以下三个部分:
1、python 模块、库、用户自定义模块
2、python 解释器(interpreter)

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

3、对象(object)、类型系统(type structures)、内存分配器(memory allocator)、运行状态信息(current status of python)

对象(object)/类型系统(type structures):python 的内建对象,如 list dict 等等。
内存分配器:负责创建对象时,申请内存,及pytho运行时与 c 中malloc的一层接口
运行状态信息:维护了解释器在执行字节码时不同的状态之间切换的动作(一个巨大而复杂的有穷状态机)。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值