Skip to content

Danny5487401/advanced_python_code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents generated with DocToc

Python高级编程

Python3.9.2:代码Env环境为mac


高级ython

推荐IDE: mac Pycharm

mac 快捷键

  • Ctrl + h: 查看 Hierarchy 子类
  • Command + l 跳到指定行

前置配置

  • ruff 格式化代码配置

第一章:一切皆对象

  1. 查看integer对象
  2. object 是所有类的基类,type是一个类,同时type也是一个基类
  3. 函数和类都是对象

第二章:魔法方法

  1. 魔法方法实现容器类操作
  2. 可调用对象__call__
  3. 类的表示__repr__
  4. 类实例化时__init__与__enter__,__exit__和__del__调用顺序,以及with的对应魔法方法糖
  5. 序列化__getstate__and___setstate__

第三章:面向对象编程

  1. 鸭子类型
  2. 抽象基类abc.ABCMeta和抽象方法abc.abstractmethod
  3. 类型判断isinstance,type配合is与*==*使用
  4. 类变量与实例属性
  5. 对象变量的查找顺序__mro__
  6. 静态方法@staticmethod-->类方法@classmethod、实例方法
  7. 数据封装和私有属性变形
  8. 对象的自省机制:类和对象的__dict__属性
  9. 父类调用查找机制super:涉及mro的算法
  10. 多继承及mixin编程模式
  11. 上下文管理器协议with:简化try_except_finaly和对象初始化和销毁
  12. @contextlib.contextmanager修饰生成器:省略了 enter() / exit() 的编写
  13. eval()动态调用函数和方法

第四章:数据结构sequence

  1. 序列类分类
  2. 可变与不可变序列类魔法方法
  3. append和extend本质
  4. 类实现切片操作的条件
  5. bisect有序序列
  6. python官方重写c语言的array
  7. 列表,集合,字典推导式

第五章:数据结构集合和字典

  1. Mapping, MutableMapping与dict关系
  2. dict.fromkeys()可迭代对象变成keys 和 dict.setdefault()
  3. 不继承dict,应继承UserDict, defaultdict和OrderedDict
  4. set与frozenset相关运算
  5. dict性能远高于list

第六章:变量,参数及垃圾回收机制

  1. Python变量实际是一个指针
  2. ==与is区别
  3. GC垃圾回收及sys.getrefcount获取引用数目
  4. 参数传递list时的经典错误
  5. 不定长参数args与kwargs

第七章:元类

  1. property属性描述符
  2. __getattr__与__getattribute__在获取属性时优先级
  3. 数据描述符与非数据描述符如何影响属性的查找顺序
  4. 类的生成过程__new__和__init__关系
  5. 元类 metaclass 控制实例化过程,动态创建类,type生成类
  6. 元类实现 ORM:类映射数据库中的一张表

第八章:迭代器及生成器

  1. 迭代协议__iter__与迭代器
  2. 使用__next__实现可迭代对象Iterator
  3. 生成器函数实现Fibonacci数列打印
  4. 底层函数工作原理
  5. 生成器读取大文件

第九章:多进程多线程

  1. GIL
  2. 多线程编程:主线程等待 或则 主线程设置为守护线程
  3. 线程通信-共享变量、Queue
  4. 线程同步-Lock、RLock、Condition、Semaphore
  5. 线程池和源码分析-ThreadPoolExecutor
  6. 多进程-multiprocessing
  7. 进程间通信

第十章:IO模型

  1. 异步编程概念
  2. c10K及Unix下五种I/O模型
    • 2.1 非阻塞式IO实现HTTP请求
    • 2.2 使用select完成http请求
  3. c10M与协程产生
  4. 生成器关闭close
  5. 生成器传值throw
  6. yield_from在调用方main与子生成器之间建立一个双向通道
  7. yield from 与 yield对比
  8. yield_from原理
  9. 生成器转协程原因:有状态,可以暂停,挂起,创建
  10. async和await关键词,协程装饰器@types.coroutine

  1. 事件循环时给任务添加回调函数,并使用偏函数改造函数入参
  2. asyncio.wait() 对比 asyncio.gather() 收集多个协程
  3. task.cancel()
  4. 协程嵌套 coroutine_nest
  5. loop.call_later(),call_soon(),call_at()
  6. 线程中集成阻塞IO
  7. asyncio中tcp使用

第十二章:函数回调及装饰器

  1. 回调函数
  2. 装饰器基本使用
  3. 装饰器语法糖@
  4. 装饰器应用
  5. 装饰器高级:带参与不带参,返回值与无返回值
  6. 装饰器装饰同一个类里的函数:修改类里的self属性值
  7. 装饰带不定长参数的函数
  8. 装饰器带参数
  9. 定义一个类装饰器,装饰函数,默认调用__call__方法
  10. 定义一个类装饰器,装饰类中的函数,默认调用__get__方法

第十三章:设计模式

  1. 设计模式一:创建型
    1.0 简单工厂模式
    1.1 工厂方法模式
    1.2 抽象工厂模式
    1.3 建造者模式
    1.4 原型模式
    1.5 单例模式
  2. 设计模式二:结构型
  3. 设计模式二:行为型

第十四章:正则匹配

  1. re.sub()和re.findall()使用
  1. 命令的任意嵌套Group
  2. 参数argument和选项Option

第十六章:parser解析

  1. configparser 模块解析配置
  2. argparse 模块解析参数
  1. getmembers 对是否是模块、框架、函数进行类型检查
  2. signature(fn).parameters 获取函数参数的参数名,参数的属性,参数的默认值
  3. inspect.stack 解析堆栈
  1. 使用具有两个 key(例如:type 和 help)的 dict来进行注释
  1. 传递字符串实现动态导入
  2. 模块导入检查
  3. 传递名称及路径实现从源代码导入
  1. injector

第二十五章: test 测试

  1. unittest 内置包
  2. pytest 第三方包

About

advanced_python_code based on Python 3.9

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published