Table of Contents generated with DocToc
- Python高级编程
- 推荐IDE: mac Pycharm
- 前置配置
- 第一章:一切皆对象
- 第二章:魔法方法
- 第三章:面向对象编程
- 第四章:数据结构sequence
- 第五章:数据结构集合和字典
- 第六章:变量,参数及垃圾回收机制
- 第七章:元类
- 第八章:迭代器及生成器
- 第九章:多进程多线程
- 第十章:IO模型
- 第十一章:协程库 Asyncio
- 第十二章:函数回调及装饰器
- 第十三章:设计模式
- 第十四章:正则匹配
- 第十五章:click命令行
- 第十六章:parser解析
- 第十七章:inspect 模块
- 第十八章:typing 模块
- 第二十章: 包管理
- 第二十一章: bytecode 字节码
- 第二十二章: importlib 模块导入
- 第二十三章: injector 依赖注入
- 第二十四章: logging
- 第二十五章: test 测试
- 第二十六章: dataclass 数据类
Python3.9.2:代码Env环境为mac
mac 快捷键
- Ctrl + h: 查看 Hierarchy 子类
- Command + l 跳到指定行
第一章:一切皆对象
第二章:魔法方法
- 魔法方法实现容器类操作
- 可调用对象__call__
- 类的表示__repr__
- 类实例化时__init__与__enter__,__exit__和__del__调用顺序,以及with的对应魔法方法糖
- 序列化__getstate__and___setstate__
- 鸭子类型
- 抽象基类abc.ABCMeta和抽象方法abc.abstractmethod
- 类型判断isinstance,type配合is与*==*使用
- 类变量与实例属性
- 对象变量的查找顺序__mro__
- 静态方法@staticmethod-->类方法@classmethod、实例方法
- 数据封装和私有属性变形
- 对象的自省机制:类和对象的__dict__属性
- 父类调用查找机制super:涉及mro的算法
- 多继承及mixin编程模式
- 上下文管理器协议with:简化try_except_finaly和对象初始化和销毁
- @contextlib.contextmanager修饰生成器:省略了 enter() / exit() 的编写
- eval()动态调用函数和方法
- Mapping, MutableMapping与dict关系
- dict.fromkeys()可迭代对象变成keys 和 dict.setdefault()
- 不继承dict,应继承UserDict, defaultdict和OrderedDict
- set与frozenset相关运算
- dict性能远高于list
- property属性描述符
- __getattr__与__getattribute__在获取属性时优先级
- 数据描述符与非数据描述符如何影响属性的查找顺序
- 类的生成过程__new__和__init__关系
- 元类 metaclass 控制实例化过程,动态创建类,type生成类
- 元类实现 ORM:类映射数据库中的一张表
- GIL 全局解释器锁
- 多线程编程:主线程等待 或则 主线程设置为守护线程
- 线程同步-Lock、RLock
- 线程通信-共享变量、Queue
- 线程池和源码分析-ThreadPoolExecutor
- Condition 条件变量
- 信号量(Semaphore)
- 进程间通信
- 多进程-multiprocessing
- 异步编程概念
- c10K及Unix下五种I/O模型
- 2.1 非阻塞式IO实现HTTP请求
- 2.2 使用select完成http请求
- c10M与协程产生
- 生成器关闭close
- 生成器传值throw
- yield_from在调用方main与子生成器之间建立一个双向通道
- yield from 与 yield对比
- yield_from原理
- 生成器转协程原因:有状态,可以暂停,挂起,创建
- async和await关键词,协程装饰器@types.coroutine
- 事件循环时给任务添加回调函数,并使用偏函数改造函数入参
- asyncio.wait() 对比 asyncio.gather() 收集多个协程
- task.cancel()
- 协程嵌套 coroutine_nest
- loop.call_later(),call_soon(),call_at()
- 线程中集成阻塞IO
- asyncio中tcp使用
- 回调函数
- 装饰器基本使用
- 装饰器语法糖@
- 装饰器应用
- 装饰器高级:带参与不带参,返回值与无返回值
- 装饰器装饰同一个类里的函数:修改类里的self属性值
- 装饰带不定长参数的函数
- 装饰器带参数
- 定义一个类装饰器,装饰函数,默认调用__call__方法
- 定义一个类装饰器,装饰类中的函数,默认调用__get__方法
- 设计模式一:创建型
1.0 简单工厂模式
1.1 工厂方法模式
1.2 抽象工厂模式
1.3 建造者模式
1.4 原型模式
1.5 单例模式 - 设计模式二:结构型
- 设计模式二:行为型