4006-998-758
3000+课程任你选择
Python高级进阶
研发学院 Python高级进阶 开课时间:2024-07-18
尹会生

他维护过日活超过 3 亿用户的微博私信平台,搭建过云主机超 5000 台的私有云平台,也为大型游戏的运营构建过大数据分析工具,做过集群和内核调优的培训,也做过嵌入式 Linux 内核的裁剪。实际工作中使用 Python 开发了大数据采集和分析平台,使用Django (Python 语言编写的 Web 框架)实现了公司基础架构统计工具,同时还在使用 Python 与 TensorFlow 进行游戏、大数据、深度学习相结合的研究工作。

曾参与编写 《白话大数据与机器学习》 《运维前线》等书籍。


查看老师详情
课程内容

学员基础

1.     掌握任意一门编程语言,如 JAVA、C、 C++ 等, 1-3年以上的开发经验。

2.     熟悉Python语言的基础语法:如判断循环、函数与类、文件操作、异常处理、标准库等

3.     熟悉常见的操作系统操作和网络协议原理如:Linux、HTTP、TCP

4.     熟悉常用的数据结构、算法和设计模式,如链表、堆栈、红黑树、快速排序等


课程目标

1.     能够编写具有Python风格的代码

2.     掌握装饰器、魔术方法、 鸭子类型、动态属性等Python高级用法,充分发挥动态语言的优势

3.     掌握Python开发的最佳实践


课程大纲

第一天

第一部分如何写Python风格的代码
1 Python数据模型(0.5小时)

1.1 案例:从一个“不像Python”的Python程序说起

1.2 Python风格编程之魔术方法

 

第二部分数据结构
2 序列(1小时)

2.1 序列的内存分布及其包含的数据类型

2.2 列表元组在实际运行中的效率差异?

2.3 Python风格编程之推导式

2.4 高阶函数filter与map(案例:MapReduce模式与Google的三驾马车)

2.5 序列排序与均值滤波算法

2.6 数组与Numpy(案例:利用 Numpy和数组分别进行矩阵操作,并分析性能优劣)

2.7 双向队列(案例:采用消息队列机制避免数据爆发增长,导致数据库崩溃)

3 字典和集合(0.5小时)

3.1 映射与hash的内存分布

3.2 字典推导式

3.3 defaultdict与UserDict(案例:利用字典实现复杂映射)

4 文本和数字(0.5小时)

4.1 Unicode编码与解码

4.2 编解码异常处理--解决乱码问题最佳实践

4.3 正则表达式(案例:使用Python进行数据预处理)

4.4 精确的浮点数计算

4.5 正确使用Python解析网络协议封包

 

第三部分深入函数
5 函数(2小时)

5.1 Python风格编程之匿名函数

5.2 动态类型语言的参数传递与静态语言的主要差异

5.3 函数式编程

5.4 Python风格编程之functools

5.5 闭包与装饰器(案例:利用装饰器简化被修饰函数复杂度)

5.6 大型框架必备技能之叠放装饰器(案例:利用装饰器实现复杂函数定义)

5.7(案例)Django中的装饰器源码分析

5.8(案例)Django中的动态属性源码分析


 第四部分面向对象

6 对象的引用和回收(0.5小时)

6.1 变量赋值的本质--Python虚拟机如何管理内存分配

6.2 对象的“相对”可变与不可变(案例:利用字节码分析Python性能瓶颈)

6.3 深拷贝与浅拷贝 (案例:对Python对象进行错误赋值导致的线上bug一例)

6.4 == 与 is 的区别

6.5 GC(案例:CPython垃圾回收机制剖析)

7 Python风格的对象(1小时)

7.1 __new__与 __init__魔术方法的正确用法(案例:利用__new__实现单例设计模式)

7.2 classmethod 与 staticmethod类中必备的装饰器

7.3 Python风格编程之鸭子类型 (案例:实现复杂的自定义数据模型)

7.4 Python风格编程之黑魔法

7.5 切片处理__getitem__

7.6 接口(案例:为Python定义“接口”)

7.7 协议与猴子补丁

7.8 抽象基类collections.abc

7.9 子类化内置类型

7.10 多继承与MRO(案例:Django的多继承实现原理,及源代码解析)

7.11 案例:基于pyvmomi(https://github.com/vmware/pyvmomi) 实战Python语言的高级特性

 

第二天

第五部分控制流
8 迭代(1小时)

8.1 迭代与递归

8.2 可迭代对象与迭代器

8.3 生成器

8.4 Python风格编程之上下文管理器

8.5 协程与yield(案例:Python协程的演化过程)


9 并发编程(1小时)

9.1 多进程、多线程与协程 (案例:多进程与多线程模型性能差异比较)

9.2 使用future模块处理Python并发

9.3 使用底层threading库管理多线程

9.4 多进程、多线程间的通信

9.5 协程与asyncio包

9.6 CPython与GIL,Python性能的阿喀琉斯之踵


 第六部分  Web框架

10 框架工具及设计模式(1小时)

10.1 MVC与MVVM 模式在Web后端开发的作用

10.2 案例:通过路由规则理解偏函数

10.3 主流框架Django与fastAPI对比

10.4 案例:基于Python的框架技术快速实现 RESTapi的创建和认证


11 Django Admin快速创建在线表单服务(1小时)

11.1 利用ORM框架加速数据建模

11.2基于函数和基于类定义视图

11.3 基于Admin模块实现用户认证

11.4 如何解决CSRF跨域请求的安全问题

12 优化代码 - 好代码的一般特征(0.5小时)

12.1 契约式设计

12.2 防错性设计

12.3 组合和继承

12.4 软件的正交性

12.5 Python中可实现的SOLID原则

12.6(案例)用装饰器改善代码

12.7(案例)描述符的分离及如何从对象中获取更多信息

 

第七部分 发布
13 发布一个完整的Python代码(1小时)

13.1 使用pyvenv 建立虚拟环境

13.2 通过pip及配置文件解决特定版本的软件包依赖关系

13.3 Python异常处理机制,及如何使用错误处理抛出友好的异常信息

13.4 使用nginx+gunicorn部署生产环境的Web服务

13.5 如何将Python应用程序打包为Docker镜像

13.6 如何将将Python程序发布为windows下的可执行文件(EXE)

14 精进Python(0.5小时)

14.1 推荐读物

14.2 GitHub中,优秀的Python项目

14.3 GitHub中,优秀的学习资源

 

补充:各章节后,增加了学员可以实际动手的小型项目,约占授课总时长的10~15%

 

 








返回上一级