
书: 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)’。”