python代码总体框架_Python源码剖析 - Python的总体架构

01. 前言

Python程序的代码是如何组织的,在代码完成编写后,又是如何运行的,它其中的原理是怎么回事,大家对这些问题一定很感兴趣。

接下来,兔子先生带着大家一探究竟。

02. Python的总体架构

从顶层设计上来看,Python可以分为三大部分:

代码文件 File Groups - 包括模块、库及用户自定义的模块。

解释器 Interpreter - 又称Python虚拟机,对代码分析理解,翻译成字节流,并运行这些字节代码。

运行环境 Runtime Env - 包括运行时的对象、基础类型结构、内存分配器和实时的运行状态信息。

03. File Groups

File Groups就是咱们的代码,在Python的代码的编写过程中,会包含自己编写的代码模块、依赖核心的模块、第三方模块和库文件(Linux下是so库,而Windows下面则是dll库)

比如下面一段代码:

from datetime import date

now = date.today()

import requests

r = requests.get('https://www.xtuz.net')

其中 datetime 就是核心模块, requests 则属于第三方模块,这段代码本身就属于用户的自定义代码模块了。

04. Interpreter

Scanner 负责词法分析的工作,将代码一行一行切分为 token,Parser 则负责语法分析,将 Token 组织为抽象语法树,Compiler 则将语法树转化为指令集合的字节码流,最后由 Code Evaluator 来执行这些字节码。

下图是.pyc文件内容,即字节码流。

05. Runtime Env

Object 和 Type Structure 分别是程序在运行过程中生成的对象和Python中的自带内建对象,如int、List、dict等。

而 Memory Allocator 则负责申请创建对象需要的内存,本质就是封装了 C 语言里面的 malloc() 函数。

Current State 负责维护运行时的各类状态信息,以便在程序执行过程中如果发生状态变化(正常态和异常态)时,仍然能正常运行。

更多内容

原文来自兔子先生网站:https://www.xtuz.net/detail-130.html

如果你对Python语言感兴趣,可以关注我,或者关注我的微信公众号:xtuz666

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值