collections模块是Python内建模块之一,提供高效容器数据类型,包括namedtuple、deque、Counter、defaultdict和OrderedDict。namedtuple()函数创建一个继承自tuple的类,提供方便的属性访问,用于定义小型不可变数据类。deque(双向队列)具有高效地从两端添加和删除元素的功能,适用于队列或栈操作。Counter类统计元素频...
深入理解 Python 虚拟机:原来虚拟机是这么实现闭包的 在本篇文章当中主要从虚拟机层面讨论函数闭包是如何实现的,当能够从设计者的层面去理解闭包就再也不用死记硬背一些闭包的概念了,因为如果你理解闭包的设计原理之后,这些都是非常自然的。根据 wiki 的描述,a closure is a record storing a funct...
在本篇文章中,我们深入探讨 cpython 内部如何实现整型数据 int。主要聚焦于 int 类型的表示方式以及巧妙设计。数据结构方面,int 类型在 cpython 中的实现采用特定数据结构。直观表示如下:该结构由多个组件构成,包括 ob_size、ob_digit 等。接下来,我们将重点解析这些关键字段的含义。首先,了解 python...
协程允许执行暂停与恢复,提供了一种实现合作式多任务的机制,与我们对函数执行常规理解相悖。实际上,Python 早已具备实现这一功能的特性:生成器。若需深入了解生成器的实现原理和字节码细节,可参考相关文章。通过 `async` 关键字定义协程函数,调用时返回协程对象而非立即执行函数。使用 `await` 等待其...
接下来,我们探讨复数类型的 repr 函数,它与类的 __repr__ 函数具有相同作用。通过观察复数输出,可以理解 repr 函数是如何工作的。复数的 repr 对应的 C 函数如下所示。修改源程序,将 () 括号更改为 [],编译后执行结果如下。可以看到,括号已更改为 []。总结 本篇文章主要介绍了 cpython ...