专栏
下载APP
Python 源码深度剖析
突破技术瓶颈,迈向更高岗位
fasionchan · 资深 Python 研发工程师

共计45节 · 已更新21节

234人已订阅

课程亮点

  • 了解Python运行机制和设计思想;
  • 熟悉背后的数据结构和算法原理;
  • 结合工程实际,掌握高效程序设计之道;
  • 高级面试知识点,求职更自信;
  • 大量图表辅助学习,难点知识轻松拿下。

课程简介

  • 能用Python完成开发需求,但是经常调用各种库,不懂更深的原理?
  • 开发出来的程序逻辑上没有问题,但是性能不够好?
  • 想争取更好的工作机会,面试却败在了内部原理上?

到底如何才能提升我的 Python 开发水平,向更高一级的岗位迈进?如果你有这些问题或者疑惑,那么首先恭喜你,打开了这门为你而写的专栏。

我是 fasionchan,资深 Python 研发工程师,曾就职于腾讯、网易游戏、蚂蚁金服等一线互联网公司。经过多年的摸爬滚打,我对 Python 开发有一些自己的体会。在网易就职期间,我便在内部开展Python 源码剖析系列技术分享,收获了不少好评。

我们都知道,程序能跑起来,并不意味着程序能高效地运行,实际上这两者有天壤之别。制约程序效率的因素很多,语言特性、运行机制、算法原理、操作系统环境等等,只掌握皮毛显然无法驾驭这些。

在我看来,要全方位掌握以上内容,最快速有效的办法就是进行源码解读,吃透底层原理。著名技术作家侯捷在《STL源码剖析》中说过:“源码之前,了无秘密。”源码就像武功秘籍,虽然有时难懂如天书;可一旦参透,便掌握绝世武功的奥妙!

源码如此有用,但研究源码也异常艰辛,我自己深知其中的辛苦——成千上万行代码,多少个日日夜夜的钻研,笔记本里的一个个草图……如果没有足够的时间和韧劲,独自坚持并不容易。

为了帮助更多人,我花费了大量时间准备这门 Python 源码剖析课,用从业多年的经验和心得,带领大家一起,解读 Python 内部原理。课程中附带了大量详尽的图表,相信在这些图表的帮助下,你可以轻松地理解原本很深奥的源码。例如,list 对象的内部结构图:

图片描述

通过这门专栏的学习,你将掌握以下内容:Python 对象模型及对象内存布局;内建对象的数据结构及算法原理;Python 虚拟机的运行机制及字节码;协程技术原理、高并发程序设计技巧;内存管理和垃圾回收方面的关键技术;Python 高效程序设计之道

源码之前,了无秘密!拒做API调用侠,向高级Python研发工程师迈进!

讲师介绍

fasionchan,资深 Python 研发工程师,曾就职于腾讯、网易游戏、蚂蚁金服等一线互联网公司。具备多年研发及招聘经验,在大数据量、高并发后台系统设计方面见解独到。技术栈非常全面,涵盖前后端主流架构,包括:flask、MySQL、MongoDB、Kafka、RabbitMQ、Docker、React 等。

课程模块

本专栏共 9 部分 45 小节,具体划分如下:

第一部分,开篇。
讨论源码学习对提升开发能力的重要意义,结合“小菜”的经历介绍 Python 工程师的成长历程。

第二部分,对象模型。

介绍 Python 面向对象理论体系,明确“ 类 ”和“ 对象 ”在 Python 中的表现形式。通过源码,分析对象的内存布局,研究对象的生命周期。

第三部分,内建对象。

涵盖 float 、int 、bytes 、str 、list 、dict 等内建对象的实现细节,重点突出每种对象的数据结构以及背后的算法思想,并结合工程实践讲解内建对象的妙用。

第四部分,虚拟机。

介绍 Python 程序的执行过程以及字节码的结构;Python 虚拟机 的运行机制,名字空间等运行时上下文,GIL 全局锁对虚拟机的影响并探索应对之策。

第五部分,函数机制。
探索函数从代码转化成函数对象的所有步骤,并以 Python代码模仿这个过程。重点讲解嵌套函数、闭包以及装饰器这些面试必问概念,并结合工程实践介绍函数式编程和装饰器的高级用法。

第六部分,类机制。

探索类从代码转化为类对象进而创建实例对象的所有步骤,并以 Python 代码进行模拟。重点讲解继承机制、属性查找等高频面试知识点,以及魔术方法、元类在程序开发中的妙用。

第七部分,生成器与协程。

讨论生成器的高级用法,并以字节码讲解它的运行原理。基于生成器,动手设计一个协程库,加深对协程运行机制的理解。结合工程实践,讲解用 asyncio 构建高并发应用的技巧。

第八部分,内存管理机制。

结合 Python 特色全面讲解内存池、引用计数、标记删除、分代回收等关键技术。理论联系实际,以一个真实案例介绍工程实践中排查并解决内存泄露问题的方法论。

第九部分,总结。

回顾专栏内容,在读懂 Python 基础上,追求有 Python 格调 的代码设计技巧。

查看全部
专栏目录
目录
适合人群
  • 期望进阶的 Python 初、中级工程师;
  • 希望通过大厂面试的求职者;
  • 对原理充满好奇心的 Python 爱好者;
  • 有一定 Python 基础的在校学生。
购买须知
  1. 本专栏为图文形式内容服务,共计 45 小节,上线时间为 2020 年 5 月 12 日,预计 2020 年 7 月 12 日更新完成;
  2. 本专栏更新时间为每周更新篇(法定节假日顺延),形式为图文;
  3. 订阅成功后,用户即可通过慕课网 PC 端、App 端、WAP 端享有永久阅读的权限;
  4. 慕课专栏为虚拟内容服务,订阅成功后概不退款;
  5. 在专栏阅读过程中,如有任何问题,请邮件联系kf@imooc.com;
  6. 慕课专栏版权归本平台所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表,违者将依法追究责任。
0 / 1
登录后可任选 1 个小节免费阅读
Kada8109531

真是好呀啊啊啊啊 awsl

5天前
0
Kada8109531

写的挺好

讲师回复:谢谢亲夸我~
2020-06-18
0
慕函数7031522

哇,一图胜千言啊

2020-06-16
4
血小板自动机

老师使用的是python3的源码来进行剖析吗

讲师回复:是的。由于官方已经停止对Python 2进行维护,未来是Python 3的世界,因此专栏以Python 3源码为目标讲解、剖析。
2020-06-13
2
慕用8409710

老师写的太好了,深入浅出

2020-06-13
1
amilu

酷哦!老师辛苦了,图画很形象,对于理解很有帮助。

讲师回复:谢谢支持,你们的满意是我创作的动力!
2020-05-22
1
weixin_慕雪0583377

嘿嘿,写的很好。自己也是用java、go写业务,用python、lua写脚本。快乐编程,老板有冰可乐不?

讲师回复:你猜??
2020-05-21
0
Umud

我不太看懂c语言写的代码,开始阅读本专栏之前,要有c语言基础吗?

讲师回复:没有 C 语言基础不要紧,有基础则更佳。你只需看懂一些简单的结构体定义即可,诸如本节介绍的这些。本专栏力求降低阅读难度,不会深陷 C 语言细节,主要以形象的结构图示,配以通俗的语言展开讲解。因此,只要你能独立编写 Python 程序,对 Python 虚拟机运行原理有好奇心,对设计高效 Python 程序有强烈追求,便可加入学习。
2020-05-19
0
哈煌

fasionchan老师,感觉底层的原理都是计算机专业学生在大学的上的专业基础课,如《计算机操作系统》《计算机组成原理》《计算机网络》《数据结构》等等,只是大学学的是理论,实践得少。工作后,是在实践中与这些原理进行对应,具体问题具体分析,背后的原理还是那些基础课程。所以,我觉得,相关从业人员有必要去重新回顾和学习这些课程的。欢迎讨论和交流哈。 看了开篇,给我的感觉是,这个专栏给可以给我们提供一个理论和实践的指导,我们之后学习其他编程语言,也可以参照老师的这个逻辑。很赞。 侯捷赞,让我重新认识C++。

讲师回复:你说得很到位,大学开设这些基础课程是有原因的。在我看来,《计算机组成》、《计算机网络》、《操作系统》、《数据结构》以及《数据库》这些基础理论,相当于于武侠小说中的内功。只有将内功基础打扎实,才能走得更远。可在工作之余抽空研究一番,假以时日,必有脱胎换骨的感觉。 美中不足的是,这些基础课程大多很理论化,学起来比较枯燥。如果可以将理论与具体的项目实践相结合,配以活生生的例子,并用更通俗的语言进行讲解,效果可能更好。这可以是你我,以及其他创作者们努力的方向。 侯捷是我很喜欢的一位技术作家,大学时代看过他写的很多书,获益良多。在国内技术写作界拼凑之风盛行的背景下,我特别钦佩他的治学态度。我虽能力不及前辈万一,也会以他为榜样,努力将这个专栏写好。欢迎各位亲多提提建议,帮我完成这个愿望。
2020-05-18
4
慕丝5584711

这老板,才是牛人啊

讲师回复:你也可以的,我们一起加油!
2020-05-17
2
楊唯希

期待尽快更新

讲师回复:多谢支持。马不停蹄创作中,敬请期待~
2020-05-13
2
— 造烛求明,读书求理 —
¥68.00
立即购买