原文:《深度剖析CPython解释器》34. 侵入 Python 虚拟机,动态修改底层数据结构和运行时

楔子 之前分析了那么久的虚拟机,多少会有点无聊,那么本次我们来介绍一个好玩的,看看如何修改 Python 解释器的底层数据结构和运行时。了解虚拟机除了可以让我们写出更好的代码之外,还可以对 Python 进行改造。举个栗子: 是不是很有趣呢 通过 Python 内置的 ctypes 模块即可做到,而具体实现方式我们一会儿说。所以本次我们的工具就是 ctypes 模块 Python 版本为 . ,需 ...

2021-10-31 13:50 0 1298 推荐指数:

查看详情

深度剖析CPython解释器》14. Python函数机制的深度解析(第一部分): 函数在底层数据结构、以及它的创建方式

楔子 函数是任何一门编程语言都具备的基本元素,它可以将多个动作组合起来,一个函数代表了一系列的动作。当然我们之前说函数也是一个变量,该变量指向一个函数。而且在调用函数时会干什么来着,没错,要在运行时栈中创建栈帧,用于函数的执行。 那么下面就来看看函数在C中是如何实现的,生得一副什么模样 ...

Sat Aug 22 09:51:00 CST 2020 1 523
深度剖析CPython解释器》24. Python运行时环境的初始化、源码分析Python解释器在启动时都做了哪些事情?

楔子 我们之前分析了Python的核心--字节码、以及虚拟机剖析工作,但这仅仅只是一部分,而其余的部分则被遮在了幕后。记得我们在分析虚拟机的时候,曾这么说过: 当Python启动后,首先会进行 "运行时环境" 的初始化,而关于 "运行时环境" 的初始化是一个非常复杂的过程 ...

Thu Sep 10 05:39:00 CST 2020 5 979
深度剖析CPython解释器》7. 解密Python中字符串的底层实现,以及相关操作

楔子 这一次我们分析一下Python中的字符串,首先Python中的字符串是一个变长对象,因为不同长度的字符串所占的内存空间是不一样的;但同时字符串又是一个不可变对象,因为一旦创建就不可以再修改了。 而Python中的字符串是通过unicode来表示的,因此在底层对应的结构体 ...

Sat Aug 08 07:44:00 CST 2020 13 769
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM