Python内核理解
理解 CPython 内核机制的核心模块,涵盖内置对象、类型系统、字节码、垃圾回收、导入机制、对象自省和 C 互操作。
| 模块 | 说明 |
|---|---|
builtins | 理解 Python 一切的起点 |
sys | 系统参数、路径、引用计数 |
types | 动态类型创建,元编程基础 |
dis | 字节码反汇编,理解 CPython 执行的钥匙 |
gc | 垃圾回收机制 |
inspect | 对象自省 ,理解 Python 对象模型 |
importlib | 导入系统,CPython 核心机制 |
weakref | 弱引用与内存管理 |
ctypes | C 互操作,理解 C 扩展 |
struct | 二进制数据打包,理解内存布局 |
ast | 抽象语法树,理解编译前端 |
📄️ ast
ast 模块用于将 Python 源码解析为抽象语法树(Abstract Syntax Tree),是理解 CPython 编译流程的核心工具。源码经过 tokenize → parse(生成 AST)→ compile(生成字节码)→ 执行,AST 正是其中承上启下的关键环节。
📄️ builtins 🔨
📄️ ctypes
如果你在客户的服务器上,需要调用一个系统动态库(.so 或 .dll),但你没有权限安装编译器( GCC 、Cython、Visual Studio),可以考虑使用 ctypes 来调用。
📄️ dis
dis模块用于反编译Python字节码,查看Python代码的执行过程。
📄️ gc 🔨
📄️ importlib 🔨
📄️ inspect
inspect 模块提供了一些有用的函数帮助获取对象的信息,例如模块、类、方法、函数、回溯、帧对象以及代码 对象。例如它可以帮助你检查类的内容,获取某个方法的源代码,取得并格式化某个函数的参数列表,或者获取你需要显示的回溯的详细信息。
📄️ struct
计算机并不理解 Python 的对象,它只理解字节。当你需要和 C 语言编写的库通信、读取一份 90 年代的二进制游戏存档、或者通过 TCP 协议传输一个自定义的数据包时,你不能直接把一个 Python 的 dict 扔过去。
📄️ sys 🔨
📄️ types
此模块定义了一些工具函数,用于协助动态创建新的类型。