
书: https://pan.baidu.com/s/1o53U8DJYBlzPKes4X47C8Q?pwd=ymj8
笔记如下:
- “Python的核心理念是‘可读性至上’,缩进(Indentation)是语法的一部分,而非风格选择。”
- “
if __name__ == "__main__":
确保脚本作为主程序运行时才执行特定代码,避免模块导入时副作用。” - “列表推导式(List Comprehension)比
for
循环更简洁高效,如[x**2 for x in range(10)]
。” - “字典的
.get(key, default)
方法避免KeyError
,collections.defaultdict
简化缺省值处理。” - “函数是‘一等对象’(First-Class Object),可作为参数传递或嵌套定义(闭包)。”
- “
*args
接收任意位置参数,**kwargs
接收关键字参数,灵活处理可变输入。” - “上下文管理器(
with open('file.txt') as f:
)自动管理资源(如文件句柄),避免泄漏。” - “异常处理应具体化:捕获
ValueError
而非泛用Exception
,else
分支处理无异常逻辑。” - “
__str__
定义用户友好字符串表示,__repr__
提供开发者调试输出。” - “模块化编程:将功能拆分为
utils.py
等文件,通过import
复用代码。” - “
f-strings
(Python 3.6+)是字符串格式化的首选,如f"Hello, {name}!"
。” - “
enumerate()
同时获取迭代元素和索引,替代range(len(list))
反模式。” - “
zip()
并行迭代多个序列,itertools.zip_longest
处理不等长情况。” - “生成器(Generator)通过
yield
惰性计算大数据集,节省内存。” - “装饰器(
@decorator
)在不修改原函数代码的前提下增强功能(如日志、计时)。” - “
pathlib.Path
替代os.path
,提供面向对象的路径操作(如Path('data') / 'file.txt'
)。” - “类型注解(Type Hints)如
def greet(name: str) -> str:
提升代码可维护性,但运行时无强制。” - “
dataclasses
(Python 3.7+)自动生成__init__
和__repr__
,减少样板代码。” - “多线程适合I/O密集型任务(
threading
),多进程(multiprocessing
)解决CPU密集型GIL限制。” - “Python哲学:‘解决问题前,先确认是否有内置库(Batteries Included)’。”