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

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

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

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

更多内容

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

查看原文 >>> Python源码剖析 - 总体设计

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


相关主题:
相关推荐
  1. 济宁市琵琶山小学
  2. 兴旺幼儿园 - 廊坊幼儿园黄页
  3. Python公开课 - 文件操作
  4. 狗熊捕鱼
  5. 成都市簇桥小学
  6. 上海市闸北区广玉兰幼儿园 - 上海幼儿园黄页
  7. 布袋和尚
  8. 警方通报:武汉男子持刀至五死一伤,嫌犯已跳桥
  9. Python公开课 - Python中的保留关键字
  10. 重庆市渝北区宝圣东路幼儿园 - 重庆幼儿园黄页
  11. 新生儿湿疹都是什么引起的 - 育儿经验
  12. 蓬莱市第一中学(蓬莱一中)
  13. Python公开课 - PDB调试处理
  14. Python Selenium find_element_by_css_selector 如何处理多个class
  15. 南昌市湾里区第三小学
  16. 绍兴市越城区东湖镇中学
  17. 礼轻人意重
  18. 周至县教师进修学校
  19. VPS - OpenVZ主机编译代码发现内存不足的问题
  20. 广州市第一一三中学
  21. Java Web Services介绍
  22. 狮子娶妻
  23. 一文看懂限流熔断降级
  24. 泰安市宁阳实验学校
  25. 央媒聚焦!国庆假期173.78万人次打卡大美黄陂
  26. 我所认识的老鼠
  27. 为虺弗摧为蛇若何
  28. 隆尧县启萌幼儿园 - 邢台幼儿园黄页
  29. 邹城市第五中学
  30. 东莞市高�逗映切⊙�
  31. 湖北将发放消费券 - 武汉新鲜事
  32. 天津市河东区智慧树幼儿园 - 天津幼儿园黄页
  33. 黄骅市常郭镇赵子札村小学
  34. 昆明市盘龙区司家营双语幼儿园(龙泉镇) - 昆明市幼儿园黄页
  35. 吉的堡双语幼儿园 - 乌鲁木齐幼儿园黄页
  36. 小黑羊和小白羊
  37. 武汉女子网上做兼职被骗六十五万
  38. 武汉动物园火烈鸟孔雀排队打疫苗
  39. 脱单!武汉的相亲角在哪你知道吗?
  40. 武汉推出越王勾践剑交通卡
  41. 幼儿园入学准备物品清单
  42. 会说话的棉花包
  43. 沈阳市铁西区腾飞街第一小学(腾飞小学)
  44. 莱州市黄山完小
  45. Python公开课 - 全文检索模块Whoosh详解(1)
  46. 湖北省黄石市第七中学
  47. 车企数字化转型(下)
  48. 北京市大兴区朱庄中学
  49. 百名网媒总编辑登上知音号欣赏武汉夜色
  50. 太原市迎泽区生态纪早教中心 - 太原幼儿园黄页
  51. 浙江省洞头县第一中学(洞头一中)
  52. 事发武汉农夫山泉矿泉水内惊现大量虫卵
  53. 武汉市蔡甸区恒银亲亲幼儿园 - 武汉幼儿园黄页
  54. 青岛春雨小学
  55. 郑州高新南流小学
  56. Python公开课 - 详解模块
  57. 武汉00后大二学妹拍视频月入七十万
  58. 深圳市福田区华新小学
  59. 鸵鸟先生和鸵鸟太太
  60. 上海市上南中学东校
  61. 可怕的鬼婆婆