Python高级编程和异步IO并发编程
第1章 课程简介
介绍如何配置系统的开发环境以及如何加入github私人仓库获取最新源码。
1-1 导学 试看
1-2 开发环境配置
1-3 资源获取方式
第2章 python中一切皆对象
本章节首先对比静态语言以及动态语言,然后介绍 python 中最底层也是面向对象最重要的几个概念-object、type和class之间的关系,以此来引出在python如何做到一切皆对象、随后列举python中的常见对象。
2-1 python中一切皆对象 试看
2-2 type、object和class之间的关系 试看
2-3 python中的内置类型
2-4 本章小结
第3章 魔法函数
本章将会介绍python语言简介语法背后的基石-魔法函数,会通过例子来演示魔法函数对python的影响、最后整体呈现python中的魔法函数来对python做一个概览。
3-1 什么是魔法函数
3-2 python数据模型对python的影响
3-3 python魔法函数一览
3-4 len函数的特殊性
3-5 本章小结
第4章 深入类和对象
本章节是python面向对象的进阶知识,通过本章的学习会掌握 python 鸭子类型以及鸭子类型对 python 的影响,随后讲解 python 中的抽象基类的运用、python 的 mro 属性查找算法和 super 函数、类变量和对象变量以及数据封装、本章节会讲解对象的自省机制能让大家对对象内部有更进一步的了解、最后是上下文管理协议...
4-1 鸭子类型和多态
4-2 抽象基类(abc模块) - 1
4-3 抽象基类(abc模块) - 2
4-4 isinstance和type的区别
4-5 类变量和实例变量
4-6 类和实例属性的查找顺序—mro查找
4-7 类方法、静态方法和实例方法
4-8 数据封装和私有属性
4-9 python对象的自省机制
4-10 super真的是调用父类吗?
4-11 mixin继承案例-django rest framework
4-12 python中的with语句
4-13 contextlib简化上下文管理器
4-14 本章小结
第5章 自定义序列类
本章节在讲解 python 的序列协议后进一步讲解 python 中序列的类型以及序列协议中的魔法函数,之后实现了自己的可以切片的序列、在本章中我们也会接触 bisect 和列表推导式、生成器表达式和字典推导式等,经过本章的学习之后大家会知道如何去定义可以像list一样使用方便的类以及明白 django 中的 queryset 的核心...
5-1 python中的序列分类
5-2 python中序列类型的abc继承关系
5-3 list中extend方法区别
5-4 实现可切片的对象
5-5 bisect维护已排序序列
5-6 什么时候我们不该使用列表
5-7 列表推导式、生成器表达式、字典推导式
5-8 本章小结
第6章 深入python的set和dict
因为 dict 的高性能,dict 在 python 内部被大量应用。本章节我们会首先通过例子演示dict 和 list 之间的性能差异,以及讲解 dict 高性能背后的原理,我们也将接触到散列表以及可散列类型,最后我们我们会知道 set 和 frozenset 的区别。...
6-1 dict的abc继承关系
6-2 dict的常用方法
6-3 dict的子类
6-4 set和frozenset
6-5 dict和set的实现原理
6-6 本章小结
第7章 对象引用、可变性和垃圾回收
本章节是偏理论的章节,却是我们进一步理解 pytho n以及排查各种隐含的 bug 最重要的章节,本章的对象引用、可变性和垃圾回收会让我们对 python 的变量本质有更进一步的加深,本章节会让我们在编码的过程中尽量避免各种坑以及出错后有排错的经验。...
7-1 python中的变量是什么
7-2 ==和is的区别
7-3 del语句和垃圾回收
7-4 一个经典的参数错误
7-5 本章小结
第8章 元类编程
元类在 python 高级工程师面试中会被经常问到、元类作为 python 中一个高级特性,熟练使用元类能不仅让我们写出更加优雅和可控性更好的代码还能进一步加深我们对python 的理解、本章节我们将会理解更多的 python 面向对象的高级特性比如property 以及属性描述符、__getattr__和__getattribute__等等,这些让我们可...
8-1 property动态属性
8-2 __getattr__、__getattribute__魔法函数
8-3 属性描述符和属性查找过程
8-4 __new__和__init__的区别
8-5 自定义元类
8-6 通过元类实现orm-1
8-7 通过元类实现orm-2
8-8 本章小结
第9章 迭代器和生成器
深刻理解生成器是理解协程的基础、迭代器和生成器作为 python 难以理解的功能,很多人对其区别以及使用都是模棱两可,本章节我们会全面理解迭代器协议以及生成器和迭代器之间的关系,我们会重点讲解生成器的原理,让我们更清楚我们在什么时候应该使用生成器,本章节我会通过几个例子加深大家对生成器的理解和使用。...
9-1 python中的迭代协议
9-2 什么是迭代器和可迭代对象
9-3 生成器函数的使用
9-4 python是如何实现生成器的
9-5 生成器在UserList中的应用
9-6 生成器如何读取大文件
9-7 本章小结
第10章 python socket编程
本章节我会从 http、socket、tcp 协议开始讲起,通过 socket 方式实现客户端和服务端让大家名明白聊天类软件的核心、要想深刻理解 web 编程、我们必须知道 socket 编程,本章节我们将通过多线程+ socket 的方式实现支持并发的服务端、最后通过 socket 模拟 http 的请求来实现为后续的异步 IO 打下并发的基...
10-1 弄懂 HTTP、Socket、TCP 这几个概念
10-2 socket 和 server 实现通信
10-3 socket 实现聊天和多用户连接
10-4 socket 模拟 http请求
10-5 本章小结
第11章 多线程、多进程和线程池编程
多线程、多进程编程一直是面试中被问到的高频问题,本章节我们将从 GIL 开始讲解多线程以及多进程的应用场景、之后详细的介绍多线程的编码、线程间通信以及线程的同步- Lock\Rlock\Condition,通过对 condition 的源码分析加深大家对条件变量的理解,接着通过线程池 ThreadPoolExecutor 的使用和源码分析加深大家对...
11-1 python 中的 GIL
11-2 多线程编程 - threading
11-3 线程间通信 - 共享变量和 Queue
11-4 线程同步 - Lock、RLock
11-5 线程同步 - condition 使用以及源码分析
11-6 线程同步 - Semaphore 使用以及源码分析
11-7 ThreadPoolExecutor线程池
11-8 ThreadPoolExecutor源码分析
11-9 多线程和多进程对比
11-10 multiprocessing 多进程编程
11-11 进程间通信 - Queue、Pipe,Manager
11-12 本章小结
第12章 协程和异步io
本章节是一个过渡章节,也是从生成器过渡到协程的最重要的章节,本章节我们将从阻塞和非阻塞等概念开始一直到引出多线程和多进程编程在并发编程中的不足、IO多路复用,然后我们会通过事件循环+回调的方式完成高并发的请求,之后我们会讲解回调之痛以及生成器进阶中的 send、close 和 yield from 等功能,最后通过这...
12-1 并发、并行、同步、异步、阻塞、非阻塞
12-2 IO 多路复用 (select、poll 和 epoll)
12-3 select+回调+事件循环获取html-1
12-4 select+回调+事件循环获取html-2
12-5 回调之痛
12-6 协程是什么
12-7 生成器进阶-send、close和throw方法
12-8 生成器进阶-yield from-1
12-9 生成器进阶-yield from-2
12-10 生成器实现协程
12-11 async和await
12-12 本章小节
第13章 asyncio并发编程
asyncio 作为 python 未来最有野心也是最有前景的模块,是我们学习 python 高并发编程的必学模块。有了12章的基础,我们直接使用 asyncio 来进行并发编程就会变得容易理解,我们从 asyncio 的基本功能开始讲解、如何将任务提交到asyncio、如何将 ThreadPoolExecutor 和 asyncio 集成,明白 asyncio 内部是如...
13-1 事件循环-1
13-2 事件循环-2
13-3 task取消和子协程调用原理
13-4 call_soon、call_at、call_later、call_soon_threadsafe
13-5 ThreadPollExecutor 和 asycio 完成阻塞 IO 请求
13-6 asyncio 模拟 http 请求
13-7 future 和 task
13-8 asyncio同步和通信
13-9 aiohttp实现高并发爬虫 - 1
13-10 aiohttp实现高并发爬虫 - 2
13-11 aiohttp实现高并发爬虫 - 3
13-12 本章小节
第14章 课程总结
本章节我们会对课程的内容做一个整体的总结,加深大家对所学知识点的整体理解。
14-1 课程总结
下载地址:百度网盘下载
Python高级编程和异步IO并发编程的更多相关文章
- Python高级编程和异步IO并发编程(笔记)
一.魔法函数 # 例子 class Company(object): def __init__(self, employee_list): self.employee = employee_list ...
- Python之路,Day10 - 异步IO\数据库\队列\缓存
Python之路,Day9 - 异步IO\数据库\队列\缓存 本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitM ...
- Day10 - Python协程、异步IO、redis缓存、rabbitMQ队列
Python之路,Day9 - 异步IO\数据库\队列\缓存 本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitM ...
- 网络编程之异步IO,rabbitMQ笔记
对于网络并发编程而言,多线程与多进程算是最常见的需求场景了.毕竟网站开放就是想要更多的流量访问的. 回顾 回顾下之前学过的关于线程,进程和协程的知识点 IO密集型任务--用多线程更好计算密集型任务-- ...
- 学会使用Python的threading模块、掌握并发编程基础
threading模块 Python中提供了threading模块来实现线程并发编程,官方文档如下: 官方文档 添加子线程 实例化Thread类 使用该方式新增子线程任务是比较常见的,也是推荐使用的. ...
- Python协程、异步IO
本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko SS ...
- Java并发编程的艺术(一)——并发编程需要注意的问题
并发是为了提升程序的执行速度,但并不是多线程一定比单线程高效,而且并发编程容易出错.若要实现正确且高效的并发,就要在开发过程中时刻注意以下三个问题: 上下文切换 死锁 资源限制 接下来会逐一分析这三个 ...
- 【转】高性能网络编程5--IO复用与并发编程
对于服务器的并发处理能力,我们需要的是:每一毫秒服务器都能及时处理这一毫秒内收到的数百个不同TCP连接上的报文,与此同时,可能服务器上还有数以十万计的最近几秒没有收发任何报文的相对不活跃连接.同时处理 ...
- 《Java并发编程的艺术》并发编程的挑战(一)
并发编程的挑战 并发编程的初衷是让程序运行的更快,但是更多的使用多线程真的会让程序变快吗? 1.线程上下文切换 关于线程上下文切换 多个线程在一个处理器里并不是同时进行的,而是非常快速地在线程之间进行 ...
随机推荐
- mysql安装配置、主从复制配置详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/8213723.html 邮箱:moyi@moyib ...
- 理解clear:both属性(转)
理解clear:both属性 在前端开发布局中,经常会被float这个属性搞晕,尤其是新手 CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列.Float(浮动),往往是 ...
- BZOJ1396: 识别子串(后缀自动机 线段树)
题意 题目链接 Sol 后缀自动机+线段树 还是考虑通过每个前缀的后缀更新答案,首先出现次数只有一次,说明只有\(right\)集合大小为\(1\)的状态能对答案产生影响 设其结束位置为\(t\),代 ...
- angularjs ui-view多视口多层嵌套路由配置
最近研究了一下ui-view多层嵌套,整理了一下 1.最简单的ui-view用法 html部分: <ul class="nav navbar-nav"> <li ...
- vue父与子通信
个人理解并整理如下 一.父传子 prop传参 父组件传递参数<x-scoll :class="red"></x-scoll> 子组件props:[" ...
- Modernizing Business Process with Cloud and AI
The world is awash with digital transformation. Every customer and partner that I talk to, across ev ...
- 用localStorage来存储数据的一些经验
localStorage: 是一种你不主动清除它,它会一直将存储数据存储在客户端的存储方式,即使你关闭了客户端(浏览器),属于本地持久层储存 sessionStorage: 用于本地存储一个会话(se ...
- ExpandableListView控件实现二级列表
效果图如下: 二级列表附有点击事件. 1.布局文件: 此处加了一个自定义的导航RelativeLayout,记得注activity的时候添加 android:theme="@style/Th ...
- Python 连接Redis两中方式
一.通过django里设置settings文件连接redis #1.settings添加 CACHES = { "default": { "BACKEND": ...
- nodejs lodash的一些函数
1 _.compact用法 _.compact([0, 1, false, 2, '', 3,'mm']); var test = _.compact([-1,0, 1, false, 2, ...