合集-Python底层原理系列
摘要:在 Python 多线程编程中,全局解释器锁(Global Interpreter Lock,简称 GIL)是一个绕不开的话题。 GIL是CPython解释器的一个机制,它限制了同一时刻只有一个线程可以执行 Python 字节码。 尽管多线程在某些场景下可以显著提升程序性能,但 GIL 的存在却让
阅读全文
摘要:在 Python 编程的世界里,我们每天都在使用 python 命令运行程序,但你是否曾好奇这背后究竟发生了什么? 本文将初步探究 CPython(Python 中最流行的实现)的一些内部机制,为了更好的来理解 Python 语言的底层运作。 1. CPython 简介 CPython 是用** C
阅读全文
摘要:前一篇我们介绍了CPython VM的运行机制,它基于一系列字节码指令来实现程序逻辑。 不过,Python字节码在完整描述代码功能上存在局限性,于是代码对象应运而生。像模块、函数这类代码块的执行,本质上就是对应代码对象的运行,代码对象涵盖了字节码、常量、变量名以及各类属性信息。 实际开发Python
阅读全文
摘要:Python作为一种广泛使用的编程语言,其简洁的语法和强大的功能深受开发者喜爱。 然而,对于许多Python用户来说,CPython(Python的官方实现)的内部工作机制仍然是一个神秘的黑盒。 今天,我们将继续探索CPython的源代码,尝试了解Python从程序启动到字运行的神秘面纱。 1. C
阅读全文
摘要:在Python中,变量的使用看起来非常简单,例如 a = 10,s = "hello"等等。 然而,这种简单的赋值操作背后,CPython其实做了很多复杂的工作。 本文将通过一些简单易懂的代码示例,一起探索Python变量背后的奥秘,让我们对它的实现机制有更深一步的理解。 1. 变量到底是什么? 在
阅读全文
摘要:Python是一种非常灵活的编程语言,它的灵活性很大程度上来自于它的对象系统。 在Python中,一切都是对象,这意味着无论是数字、字符串,还是我们自己定义的类的实例,它们在底层都遵循相同的规则。 本文尝试揭开Python的对象系统的神秘面纱。 1. 对象和类型 在Python中,每个对象都有一个类
阅读全文
摘要:Python中的属性操作(如获取、设置和删除属性)是我们日常编程中非常常见的操作。 但你有没有想过,当我们写下obj.attr或obj.attr = value时,Python 内部究竟发生了什么? 本文将探讨Python属性的工作原理,并通过简单的代码示例来更好地理解这些概念。 1. 属性的基本操
阅读全文
摘要:整数类型是编程中最常见的数据类型之一,但它的实现细节却鲜为人知。 与其他语言不同,Python 的整数是任意精度的,这意味着它们可以无限大,仅受限于内存。 这种特性使得 Python 在处理大整数时非常强大,但也增加了实现的复杂性。 今天,我们将探讨 Python 整数的内部实现,揭示其背后的奥秘。
阅读全文
摘要:在现代编程中,字符串是不可或缺的数据类型。 无论是处理用户输入、文件读写还是网络通信,字符串都扮演着核心角色。 然而,字符串的处理并非简单地将字符拼接在一起,它涉及到字符集、编码以及编程语言的底层实现。 本文将深入探讨字符串在程序中的处理方式,特别是在 Python 中的发展, 同时与其他编程语言的
阅读全文
摘要:在Python中,字典(dict)是一种极为强大且常用的内置数据结构,它以键值对的形式存储数据,并提供了高效的查找、插入和删除操作。 接下来,我们将深入探究 Python 字典背后的实现机制,特别是其与哈希表的关系,以及在 CPython 中的具体实现。 1. 哈希表 字典用于存储 Python 中
阅读全文
摘要:在现代编程中,并发是提高程序效率的关键技术之一,它允许程序同时执行多个任务,充分利用系统资源。 本文将深入探讨 Python 中的async/await机制,从并发编程基础讲起,逐步剖析其工作原理和实现方式。 1. 并发编程基础 计算机程序的执行方式主要有两种:顺序执行和并发执行。 顺序执行是按代码
阅读全文