这才是我想要的 Python 书

在Pycharm中配置Pyqt5工具(2023年新版教程) 在Pycharm中配置Pyqt5相关的三个工具:QtDesigner、PyUIC、PYRCC 阅读详情

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

在编程的世界里,Python以其简洁优雅而广受青睐。我们都知道for循环的使用,知道列表的翻转的技能。但是聪明的你有没有想过在Python这门语言中,它是怎么优雅的实现列表呢?

说到这些常见的Python知识点我们可能是非常的熟悉,那CPython呢?对于很多人来说CPython是一个比较陌生而又熟悉的话题,在某平台上这个话题有着不少的浏览量,但是相关的讨论却不是很高。

9bfe486a002d86c5d711dd8ec43cab5b.png

大家对CPython讨论度不高,主要原因还是作为Python的底层,CPython学起来苦涩难懂。很多小伙伴对这些知识并不是很熟悉也不是很感兴趣。另外一个原因也是因为市场上CPython相关的图书太过缺乏,使得很多读者想学习Python的底层知识又没有一个合适的入门资料。

d42ee165f872b1e53a18ae635877dc33.png

什么是CPython

CPython是Python编程语言的一个主要实现版本,它是用C语言编写的,并且是Python官方的标准实现。大家可能还听过Pypy、JPython等Python的实现。

CPython这个名字来源于它的实现语言(C语言)和它所实现的语言(Python),故此得名。官方实现的CPython具有以下的特点:

1. 官方实现:CPython是Python语言的官方实现,由Python软件基金会维护。

2. 广泛使用:它是最广泛使用的Python实现,大多数Python库和框架都是基于CPython开发的。

3. 性能强劲:CPython通常比其他Python实现(如Jython或IronPython)具有更好的性能,毕竟它是使用C语言来实现的。

4. 兼容性:CPython定义了Python语言的标准,因此其他实现通常都会尽力与CPython保持兼容。

5. 开源性:CPython是开源软件,它的源代码可以在GitHub上找到,任何人都可以贡献代码或提出改进。

6. 扩展性:CPython允许使用C语言编写扩展模块,这使得Python可以调用C语言写的库,提高了Python与系统资源的交互能力。

7. 全局解释器锁:CPython的一个特点是全局解释器锁(GIL),这是一个互斥锁,确保在任何时刻只有一个线程执行Python字节码。虽然这限制了多线程程序的性能,但简化了CPython的实现。

说了这么多,小伙伴们记住一个标准答案:CPython是Python语言对应的解释器,由C来实现。

151b922f26ace93404328e17bb39a5df.png

为什么要学习CPython

CPython的特点是如此的多,如果非要给出几个不得不学习CPython的原因,以下几个原因或许可以说服你:

  • 深入理解Python:通过学习CPython,我们可以了解Python语言的工作原理,包括它的内存管理、垃圾回收机制、解释器如何执行代码等等,可以深入理解Python,了解最为核心的部分。

  • 性能优化:Python的性能一直被很多的Python使用者吐槽,因此了解CPython可以帮助你编写更高效的代码,理解哪些操作可能导致性能瓶颈,找到代码优化的方向。

  • 解决复杂问题:深入学习CPython可以帮助我们更好地解决复杂的编程问题,比如我们开发过程中遇到的内存泄漏、多线程编程等等。

  • 提升技术能力:CPython作为Python的底层,因此学习CPython可以显著提升我们的编程技术能力,使你在技术讨论和面试中更加自信。

以上几点我觉得是我作为一个Python技术开发者必须要去学习CPython的主要原因,大家觉得呢?

667d4d0c7b45e6b3004c4ea9c2cca797.png

CPython最强工具书

除了Python的源码解析相关的图书可以了解CPython的相关的内容,目前正好有一本十分合适的用于零基础掌握CPython,深入立即CPython设计和实现的图书,它就是《CPython设计与实现》!

7050ac13ca99562fae04cc087afe5a78.png

这本书目录如下:

4bd8b0683979f19f001ef3594d394bda.jpeg

从上面的目录中可以看出,本书在注重基础的同时,又对一些非常热门的知识点进行了讨论,比如内存管理、并行和并发等等。因此这本书适合所有对Python语言有深入兴趣的读者。当然,如果想读懂这本书,还是需要有一点Python基础知识的。

dbd5cfc37b133bdaf79a8616287891f9.png

内容分享

本人有幸在第一时间拿到了这本书,看了其中的一些章节,目前来说最喜欢的章节要属第九章的内存管理,也涉及到一些垃圾回收机制的内容。比如说一个类引用一个“自身类”的例子:

__all__ = ["User"]
class User(BaseUser):
   name: 'str' = ""
   login: 'str' = ""
   def __init__(self, name, login):
     self.name = name
     self.login = login
     super(User).__init__()
   def __repr__(self):
     return ""

class BaseUser:
def __repr__(self):
     # 这段代码创建了一个循环引用
     return User.__repr__(self)

稍微分解看看上述代码:

(1)上述代码定义了一个名为User的类,它继承自BaseUser类。

(2)super(User).__init__ 这行代码调用了父类BaseUser的构造函数。super()函数用于调用父类的方法,确保父类的初始化代码也被执行。

(3)return User.__repr__(self): 这行代码尝试调用User类的__repr__方法来获取

BaseUser实例的字符串。这里User类的__repr__方法返回空字符串,如果User类的__repr__方法没有返回空字符串,而是调用了BaseUser.__repr__,那么就会形成一个无限循环,因为BaseUser的__repr__方法调用了User.__repr__,而User.__repr__又调用了BaseUser.__repr__,如此往复。

那么对于上述这种“循环”的现象,垃圾回收器的目标该是什么呢?本书给出的解答是:找到不可达对象,不可达的对象即可标注为垃圾。

对于上述这种循环的引用的情况,使用引用计数的机制并不足以保证在不需要此类对象时释放它们,因此需要另外一个垃圾回收机制去

保证找到所有需要释放内存的方法。

基于上述的问题,CPython 垃圾回收器利用现有的引用计数算法和自定义的垃圾回收器算法来查找所有不可达的对象。由于引用计数在某个角度上来说已经覆盖了大部分场景,因此 CPython 垃圾回收器的工作就是查找容器类型中的循环引用。

学完本书第九章内存管理的一些内容,基本上就可以在实际的项目过程中使用技术手段来控制和调整自己的代码,以更好地提升代码效率及其内存占用空间。

876281e7bbbb22f5bf6dcc90f71ede09.png

适用读者

这本书的适用读者还是比较清晰的,从个人的角度出发,我觉得有以下几个群体较为合适学习:

  • 所有对Python语言有深入兴趣的读者,对于初学者,它是一扇窗口,可以让他们一窥编程语言Python的内部世界。

  • Python进阶开发者:从底层了解Python,不断提开发者的技术能力。

  • Python解释器原理爱好者。

7ecc5bcc0a48f10c31256b8129eaa367.png

 与《流畅的Python》的区别

之前,我还读过一本非常强大的Python进阶图书《流畅的Python(第2版)》,那其与CPython这本书之间有什么区别呢?

  • 主题不一样:

《CPython设计与实现》专注于CPython解释器的内部工作原理,包括它的实现细节、内存管理等底层相关。

《流畅的Python(第2版)》则侧重于Python语言的最佳实践和高效使用,涵盖了语言特性、库的使用以及编写高效Python代码的技巧知识。

  • 内容侧重点:

《CPython设计与实现》深入探讨了CPython的底层实现,包括编译器、解释器和运行时环境,主要是对底层实现进行剖析。

《流畅的Python(第2版)》则深入探讨了Python的高级特性,如装饰器、生成器、迭代器和并发编程等编程进阶的知识。

  • 语言层面:

- 《CPython设计与实现》关注的是Python语言的实现层面,即CPython是如何被构建和运行的,相当于回答这一问题。

- 《流畅的Python》关注的是语言的使用层面,即如何使用Python语言的特性来编写清晰、高效的代码。特别是使用Python进行高效能作业方面。

a0e58455a4739f601245c64464949cd8.png

4cbabf0891bdc4de5b57e87f046548c9.png

学习建议

从一定的角度上来说本书看还是比较进阶的,毕竟要深度Python的底层,从底层的实现来了解Python的运行机制,这里有一丢丢的学习建议和大家分享一下:

  1. 本书是一本属于实战类型的Python书籍,因此在学习的时候需要进行“动手学”操作,不可走马观花。

  2. 本书内容十分的精彩,因此不建议快速阅读此书,要在阅读的时候同时思考,思考代码这样写为什么能提高效率增强性能。

  3. 不放过每一个问题,CPython的设计与实现存在很多的细节,因此在学习的时候我们不免会发现很多的问题,但是我们应该认真的对待每一个问题,在弄清每一个问题的过程中Python技能就不断精进了。

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

最近我开了一家淘宝店,名字叫【打破壁垒】,主打程序开发相关付费素材、工具的共享类商品,帮助大家降低试错和使用成本。欢迎大家关注。

f850e291c7ac679a8d9cb26650eb1f66.jpeg

长按扫描下方二维码,然后点击页面中的【打开淘宝】,即可进入店铺:

96d07f32c0aa2de4c242dc6f49f85339.png

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

ef5799dfc0772e82365ad500064afa2f.jpeg

欢迎围观我的朋友圈

👆每天更新所想所

解决宿主机Ping不通虚拟机的问题 在使用虚拟机的过程中,我们常常会遇到宿主机和虚拟机之间无法相互通信的问题。具体来说,我们要查看虚拟机和宿主机的 IP 地址,然后尝试进行 Ping 测试。在某些情况下,我们可能发现 Ping 虚拟机不通,接下来我将分享如何解决这个问题。 阅读详情

相关推荐

QGIS中高效处理CAD数据的两种实用技巧

本文详细解析了在QGIS中高效处理CAD数据的两种核心方法。针对DWG/DXF文件在QGIS中直接打开失败的问题,介绍了使用QGIS内置数据导入管理器进行标准化转换的流程,并重点推荐了功能更强大的Another DXF Importer插件,以更好地保留文字、块属性等复杂信息。文章对比了两种方法的优劣与适用场景,并提供了坐标系设置、中文乱码等常见问题的避坑指南,帮助用户根据数据需求选择最佳导入策略。

weixin_28363123的博客 115

想要学好python需要哪些软件_想要自学python,需要学哪些书,用哪些软件?

Python是一种多功能语言。它经常用作Web应用程序的脚本语言,嵌入到软件产品中,以及人工智能和系统任务管理。它既简单又强大,非常适合初学者和专业程序员。小编选择几本高质量的Python书籍。里面涵盖各种各样的书籍,其中包含适用于初学者,中级和高级程序员的,也有针对特别领域的。1、《像计算机科学家一样思考Python》本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程,这是一本...

weixin_39968820的博客 81

2023年5月青少年软件编程Python等级考试四级真题(含答案和解析)

电子学会,2023年5月,青少年软件编程,Python等级考试,四级真题(含答案和解析)

m0_37554648的博客 903

python神书_给想要学习Python推荐的一本免费的入门神书

原标题:给想要学习Python推荐的一本免费的入门神书随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python最近,猿哥想起有本好书一直没有和大家推荐过,绝对称得上是Python入门神书,这本书最大的特点在于每个章节都是由一位该领域的开源大牛编写的,每章包含一个程序实现,这些程序的代码都...

weixin_42562124的博客 314

【校园网代理连接问题】已解决,“该设备或资源(Web 代理)未设置为接受端口“7890”上的连接“

我遇到这个问题很多次。每次都是vpn的问题,不止通俗意义上的梯子(clash之类的),还包括校园网vpn。点击“ 拨号和虚拟专用网络设置”中的“设置”, 关闭代理服务器。在打开vpn后或者关闭vpn后无法浏览网页,网页诊断显示“关闭“手动设置代理”中的“使用代理服务器”,关闭对应的本地代理即可。

聆雨。 1万+

NET 实战:30 天搞定企业级 Web 订餐系统(附完整源码 + 数据库设计)

订餐流程:浏览菜品 → 选择菜品及数量 → 填写送餐地址 → 提交订单 → 数据库记录核心代码(绑定菜品列表):vb' 绑定菜单表到DataGrid控件,展示菜品信息user id=sa;' 查询菜品名称、价格、口味Dim adpt1 As New SqlDataAdapter("select cdishid,vdishname 菜品名称,cdishrate 价格,vdishdescription 口味 from dish", conn)End Sub用户体验优化。

m0_67740236的博客 1517

这才是我想要的Python书:一本书讲透Python核心原理

在编程的世界里,Python以其简洁优雅而广受青睐。我们都知道for循环的使用,知道列表的翻转的技能。但是聪明的你有没有想过在Python这门语言中,它是怎么优雅的实现列表呢?说到这些常见的Python知识点我们可能是非常的熟悉,那CPython呢?对于很多人来说CPython是一个比较陌生而又熟悉的话题,在某平台上这个话题有着不少的浏览量,但是相关的讨论却不是很高。大家对CPython讨论度不高...

图灵教育 231

从零构建安全通信:mbedtls与ECDSA在嵌入式系统中的实战指南

本文详细介绍了如何在嵌入式系统中使用mbedtls和ECDSA实现安全通信,重点探讨了ECDSA相比RSA的优势、mbedtls的模块化裁剪策略、密钥安全存储方案以及完整的签名验签流程。通过实战案例和优化技巧,帮助开发者在资源受限环境下构建高效可靠的安全通信系统。

weixin_28338005的博客 685

自学python教程软件_想要自学python,需要学哪些书,用哪些软件?

我以前学的时候,是先看的《简明python教程》,会对照官方文档看一看,但官方文档内容太多,我基本是当做字典来查询想要的说明,不会细看。等我熟练了一点后,我看了《python核心编程》和《python cookbook》。其他书我都大致翻了下,大同小异,所以就推荐这几本。不过我学的时间比较早,当时还流行python2,我的建议是《python核心编程》和《python cookbook》这两本选最...

weixin_39846612的博客 79

FPGA可重构技术

介绍FPGA 可重构技术的实现方法,包括全局重构和部分重构

航天领域资深码农,型号经验丰富,一线干货分享 1989

利用XGBoost实现短期电力负荷预测

本数据集为某地区2009年-2015年的用电负荷,时间片为每分钟这里我们定义了XGB模型作为实例,来进行模型训练,之后我们会对其使用网格搜索找到最优的参数。

优快云 精品推荐 4494

python免费学书_给想要学习Python推荐的一本免费的入门神书

书中一共有22个项目,下面介绍一下,这本书都有哪些项目:1、Blockcode: A visual programming toolkit(可视化编程)该项目主要通过龟图(turtle graphics)实现块语言,通过简单拖放创建图案,整个过程通过常用的Html、CSS和Java来实现(每一个块由html元素组成,CSS用于设置样式,Java时间处理器进行拖拽并修改参数)。属于图片编程的一种2、...

weixin_39575937的博客 108

2026 企查查/天眼查:IP频率限制 + 验证码策略,企业工商数据采集实战

企业工商数据采集技术解析与解决方案 本文深度剖析了2026年企查查和天眼查平台的反爬机制与技术对抗方案。主要内容包括: 反爬机制分析: 采用JA4+ TLS指纹识别、极验v6验证码等多层防护 IP限制策略严格区分未登录/普通/VIP账号 精准识别并封禁数据中心IP 核心解决方案: 构建高可用住宅代理池,动态轮换真实用户IP 基于YOLOv8的验证码缺口识别技术(准确率99%) 分布式架构设计,支持千万级数据采集 多账号池管理与行为模拟技术 技术亮点: 动态住宅IP池实现1%以下封禁率 Playwright浏

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1323

python零基础看什么书-零基础想要学习Python编程 ,不知道看哪本书?

前言Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取!想要学习Python编程不知道看哪本书?今天就推荐给你几本从Python入门进阶到开发实战的书籍,你做参考!Python 是军刀型的开源工具,被广泛应用于Web 开发、爬虫、数据清洗、自然语言处理、机器学习和人工智能等方面,而且Pyt...

weixin_37988176的博客 145

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

求推荐自学python的书_请问如果想要自学python,有没有什么书籍或者公开课的推荐?...

推荐两本适合小白的python书籍,希望能对你有所帮助。《python编程从入门到实践》本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;第二部分将理论付诸实践,讲...

weixin_39720516的博客 55

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

python快速编程入门书pdf下载

本书的目的,不仅是介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的首部分介绍了基本Python编程概念,第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识。通过阅读本书,读者将能利用强大的编程语言和工具,并且会体会到Python编程的快乐。5.1.2 keys()、values()和items()方法 83。1.6.6 str()、int()和float()函数 13。

2401_86114921的博客 2058

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python游戏编程入门书籍推荐-游戏编程入门书籍推荐:想要游戏编程尽快入门这些书不要错过...

游戏编程一直都是编程之中的一大热点,这也是由于游戏本身的火热造成的结果,所以每年都有很多人在关注着游戏编程。介于此小编今天就来将一些好的游戏编程入门书籍推荐给大家,希望对想要了解和学习游戏编程的朋友能够有所帮助。游戏编程入门书籍推荐no.1:《游戏编程入门(第4版)》游戏编程经典入门读物的最新版,更新到最新的第4版。本书自第1版出版至今已经长达十年,深受广大读者欢迎。本书有志于进入游戏编程世界且有...

weixin_37988176的博客 93

它被评为世上最好的Python书!

你好,我是 zhenguo你如果想学习并打算深入了解Python,那么今天这本书应该必看,反复看,必须珍藏。这本书被评为世界上最好的Python书籍:根据美国有线电视新闻网,福布斯和英国电...

baidu_25854831的博客 102
上一篇: 都2024年了还有人不知道京东优惠群????
下一篇: VS Code Python 7 月更新
codingpy
博客等级 码龄11年 1866粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值