原文:《深度剖析CPython解释器》8. 解密Python中列表的底层实现,通过源码分析列表支持的相关操作

楔子 Python中的列表可以说使用的非常广泛了,在初学列表的时候,老师会告诉你列表就是一个大仓库,什么都可以存放。不过在最开始的几个章节中,我们花了很大的笔墨介绍了Python中的对象,并明白了Python中变量的本质,我们知道列表中存放的元素其实都是泛型指针PyObject ,所以到现在列表已经没有什么好神秘的了。 并且根据我们使用列表的经验,我们可以得出以下两个结论: 每个列表中的元素个数可 ...

2020-08-09 04:03 8 843 推荐指数:

查看详情

深度剖析CPython解释器》7. 解密Python字符串的底层实现,以及相关操作

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

Sat Aug 08 07:44:00 CST 2020 13 769
深度剖析CPython解释器》29. 源码解密 map、filter、zip 底层实现,对比列表解析式

楔子 Python 现在如此流行,拥有众多开源、高质量的第三方库是一个重要原因,不过 Python 的简单、灵巧、容易上手也是功不可没的,而其背后的内置函数(类)则起到了很大的作用。举个栗子: 我们看到一行代码就搞定了,那么问题来了,这些内置函数(类)在底层是怎么实现的呢?下面我们就来 ...

Thu Nov 26 03:40:00 CST 2020 0 364
深度剖析CPython解释器》5. 解密Python的整数在底层是如何实现的,以及为什么Python中大整数的运算不会溢出

楔子 这次我们来分析一下Python的整数是如何实现的,我们知道Python的整数是不会溢出的,换句话说,它可以计算无穷大的数。只要你的内存足够,它就能计算,但是对于C来说显然是不行的,可Python底层又是C实现的,那么它是怎么做到整数不会溢出的呢? 既然想知道答案,那么看一下 ...

Wed Aug 05 08:29:00 CST 2020 6 1062
深度剖析CPython解释器》22. 解密Python的生成器对象,从字节码的角度分析生成器的底层实现以及执行逻辑

楔子 下面我们来聊一聊Python的生成器,它是我们理解后面协程的基础,生成器的话,估计大部分人在写程序的时候都想不到用。但是一旦用好了,确实能给程序带来性能上的提升,那么我们就来看一看吧。 生成器 基本用法 我们知道,一个函数如果它的内部出现了yield关键字,那么它就不再是普通的函数 ...

Sun Sep 06 08:55:00 CST 2020 4 301
深度剖析CPython解释器》4. 解密Python中最简单的对象--浮点数的底层实现

楔子 从现在开始,我们就来分析Python中常见的内置对象、以及对应的实例对象,看看它们在底层是如何实现的。但说实话,我们在前面几节中介绍对象的时候,已经说了不少了,不过从现在开始要进行更深入的分析。 除了对象本身,还要看对象支持操作底层是如何实现的。我们首先以浮点数为例,因为它是最简单 ...

Sun Aug 02 03:57:00 CST 2020 10 791
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM