课程亮点

了解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 源码深度剖析相关推荐

  1. libevent源码深度剖析

    原文地址:http://blog.csdn.net/sparkliang/article/details/4957667 libevent源码深度剖析一 --序幕 张亮 1 前言 Libevent是一 ...

  2. libevent源码深度剖析十一

    libevent源码深度剖析十一 --时间管理 张亮 为了支持定时器,Libevent必须和系统时间打交道,这一部分的内容也比较简单,主要涉及到时间的加减辅助函数.时间缓存.时间校正和定时器堆的时间值 ...

  3. libevent源码深度剖析十

    libevent源码深度剖析十 --支持I/O多路复用技术 张亮 Libevent的核心是事件驱动.同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows.Linu ...

  4. libevent源码深度剖析一

    libevent源码深度剖析一 --序幕 张亮 1 前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少.写这一系列文章的用意在于,一则分享心得:二则对libe ...

  5. libevent源码深度剖析十二

    libevent源码深度剖析十二 --让libevent支持多线程 张亮 Libevent本身不是多线程安全的,在多核的时代,如何能充分利用CPU的能力呢,这一节来说说如何在多线程环境中使用libev ...

  6. libevent源码深度剖析九

    libevent源码深度剖析九 --集成定时器事件 张亮 现在再来详细分析libevent中I/O事件和Timer事件的集成,与Signal相比,Timer事件的集成会直观和简单很多.Libevent ...

  7. libevent源码深度剖析六

    libevent源码深度剖析六 --初见事件处理框架 张亮 前面已经对libevent的事件处理框架和event结构体做了描述,现在是时候剖析libevent对事件的详细处理流程了,本节将分析libe ...

  8. libevent源码深度剖析四

    libevent源码深度剖析四 --libevent源代码文件组织 1 前言 详细分析源代码之前,如果能对其代码文件的基本结构有个大概的认识和分类,对于代码的分析将是大有裨益的.本节内容不多,我想并不 ...

  9. libevent源码深度剖析三

    libevent源码深度剖析三 --libevent基本使用场景和事件流程 张亮 1 前言 学习源代码该从哪里入手?我觉得从程序的基本使用场景和代码的整体处理流程入手是个不错的方法,至少从个人的经验上 ...

  10. libevent源码深度剖析八

    libevent源码深度剖析八 --集成信号处理 张亮 现在我们已经了解了libevent的基本框架:事件管理框架和事件主循环.上节提到了libevent中I/O事件和Signal以及Timer事件的 ...

最新文章

  1. java 参数 exception_java – 在异常的参数中使用泛型
  2. 洛谷P1337 [JSOI2004]平衡点 / 吊打XXX(模拟退火)
  3. Django手写登录装饰器
  4. Java中的ClassLoader
  5. dotnetClub 的前世今生
  6. 闰秒导致MySQL服务器的CPU sys过高
  7. 到底什么培训适合你?
  8. IIS+ASP部署相关
  9. 记录:网络通信协议中的TCP/IP与UDP
  10. ELK官方文档收集Kibana监视数据编辑
  11. Maven仓库—Nexus环境搭建及简单介绍
  12. C# 使用Microsoft.Reporting打印票据
  13. Android实战之 上传头像 和仿QQ空间、微博发表文字和图片
  14. 安全系统工程徐志胜电子版_安全系统工程-第3版
  15. viper4android资源分享,一步一步教你如何使4.42版本ROOT并且安装Viper4Android音效软件...
  16. 免费高性能计算机平台,北京大学高性能计算平台
  17. lineageos没有信号解决方法
  18. 国二c语言考试要点,全国计算机二级考试c语言考试要点
  19. oracle output语句,Oracle Returning 语句用法总结
  20. sina获取股票代码java

热门文章

  1. docker笔记1_安装及常用命令
  2. 【转】ubuntu下修改文件夹权限
  3. PAT:1053. Path of Equal Weight (30) AC
  4. [小算法] 找出单链表中的中间元素
  5. 关于Tomcat无法启动的问题(Server Tomcat v7.0 Server at localhost failed to start.)
  6. 【BZOJ2768】[JLOI2010]冠军调查/【BZOJ1934】[Shoi2007]Vote 善意的投票 最小割
  7. Servlet之Filter过滤器
  8. vs目录(继承的值)配置
  9. 在多线程 Python 程序中实现多目标不同缩进格式的 logging
  10. InstallShield 2011中数字签名失败的问题