飞行日志
常用链接
韭菜搞钱
三省吾身
知行合一
📚读书笔记:python工匠
type
status
date
slug
summary
tags
category
icon
password
书籍信息
书名:Python 工匠
作者:朱雷
状态:阅读中
简介:从案例、技巧、工程实践让你再一次认识 Python。
思维导图
用思维导图,结构化记录本书的核心观点。
读后感
观点1
作者说了很多放之四海而皆准的原则,不要只局限在 python 。
观点2
除了阅读,关键还是要用于实践。
书摘
第一章:变量与注释
Sphinx格式文档注释法,类型注解法
遵从 PEP8 原则
先写注释再写代码
“在协助一句有说服力的注释前,别写任何函数代码”
第二章:数值与字符串
- python 的浮点数计算精度有些问题,如果要使用确定的精度,可以引入 demicial.Demicial(str s) 函数;
- 字符串拼接,除了 format 还有 f-string 法(python 3.6 之后引入);
- 对于确定的结构 ,使用 partition 代替 split;使用 translate 代替 replace;
- 二进制字符串要经过解码(decode)才能被人类看懂,普通字符串要经过编码(encode)才能被计算机识别;
- 使用常量和枚举代替字面量;使用 SQLAlchemy 操作数据库;使用 Jinja2 模板处理字符串;
- 使用 dis 模块可以对 python 进行反汇编;使用 timeit 可以方便的做性能测试;
- 使用 + 拼接字符串并不会拖慢速度,python 进化速度很快;
第三章:容器类型
主要介绍字典,列表,集合,元组这些东西和特别的操作。
第四章:条件分支控制流
提前返回,and 优先级比 or 高,bisect 优化分支判断,使用 any 或者 all 类精简表达式
第五章:异常处理
异常没有什么,但是过于模糊的异常是不可取的,需要精准捕获。在设计 API 时,需要返回方便查阅的信息来代替错误,比如 404,301 等
第六章:循环和可迭代
可迭代对象包含 __iter__ 和 __next__ 方法;在处理大文件读取时,注意内存消耗;
第七章:函数
提前返回,不要太长,慎用全局变量,多用 map 和 filter 的推导式;用循环代替递归
第八章:装饰器
装饰器的用法,原理;使用 wrapt 模块;装饰器设计技巧;
第九章:面向对象编程
与其他语言类似。
第十章:面向对象设计原则(上)
SOLID 原则:SRP 单一职责;OCP 开发-关闭原则;
第十一章:面向对象设计原则(下)
SOLID 原则:LSP 里式替换原则;DIP 依赖倒置原则;ISP 接口隔离原则;
第十二章:数据模型与描述符
了解数据模型知识,写出更 Python 风格的代码,但是不要迷信数据模型。
第十三章:开发大型项目
- 格式检查:flake8,isort,black;
- pre-commit 的 Git 钩子;
- mypy 静态类型检查;
- unittest,pytest
- 对待测试的正确态度