Python

Python

并发编程完全指南

Python 提供三种主要并发模型:基于线程的 threading、基于进程的 multiprocessing 和基于协程的 asyncio。此外,concurrent.futures 提供了统一的高层接口。选择哪种模型取决于任务类型。 CPython 的 GIL 确保同一时刻只有一个线程执行 Python 字节码。因此,对于纯 Python 的 CPU 密集型代码,多线程不能带来并行加速。但对于 IO 密集型任务,线程在等待 IO 时会释放 GIL,其他线程可以运行。 C 扩展(如 NumPy 的计算部分)在执行期间可以主动释放 GIL,实现真正的并行

By yellowdog

Python

Python 内置函数完全参考

见 数据类型(/python-nei-zhi-shu-ju-lei-xing-wan-quan-can-kao/) range 章节。 返回 (index, value) 元组的迭代器。 并行遍历多个迭代器,以最短的为准(strict=False 时)。 返回惰性迭代器,需要 list() 消费。 返回新列表,不修改原对象(区别于 list.sort() 原地排序)。 返回反向迭代器(不创建新列表),要求序列支持 __reversed__ 或 __len__ + __getitem__。 any:任意一个为真返回 True;空迭代器返回 False。 a

By yellowdog

Python

pathlib 完全指南

pathlib 是 Python 3.4 引入的标准库模块,提供面向对象的文件系统路径操作。相比 os.path 的字符串拼接方式,pathlib 的 Path 对象更直观、更安全,跨平台兼容性更好。 Path() 构造函数的参数: pathlib 重载了 / 运算符来进行路径拼接,这是最推荐的方式: joinpath 的参数: with_name 的参数: with_suffix 的参数: write_text 的参数: read_text 的参数: write_bytes 的参数: read_bytes 无参数,返回 bytes。 Path.open

By yellowdog

Python

mypy 类型系统完全指南

相关文档:Pydantic完全指南(/pydantic-wan-quan-zhi-nan/) FastAPI完全指南(/fastapi-wan-quan-zhi-nan/) 装饰器与函数高级(/python-zhuang-shi-qi-yu-han-shu-gao-ji-yong-fa/) Python 是动态类型语言,类型注解(PEP 484+)不影响运行时,但提供: Protocol 定义一组方法/属性的接口,只要对象实现了这些方法,就满足 Protocol,无需继承: 不要一次性给整个项目加注解,从公共 API(函数签名)开始,逐步内部化: Any

By yellowdog

Python

loguru 完全指南

最后更新:2026-04-22 标准库 logging 需要手动创建 Logger、Handler、Formatter 三层对象,配置繁琐。loguru 用一个全局 logger 对象统一所有操作,开箱即用。 loguru 只有一个全局 logger 对象(loguru.logger),所有输出目标(终端、文件、自定义 sink)通过 logger.add() 注册为 sink,每个 sink 独立配置级别、格式、轮转策略,logger.remove() 移除 sink。 默认 sink 是 sys.stderr,id 为 0。 默认输出格式: logg

By yellowdog

Python

itertools 与 functools 完全指南

itertools 和 functools 是 Python 标准库中两个专注于函数式编程的模块。itertools 提供高效的迭代器工具,functools 提供高阶函数和函数操作工具。两者结合使用能写出简洁、高效、声明式的 Python 代码。 无限迭代器不会自动停止,必须配合 islice、takewhile 或 break 使用,否则会进入死循环。 从起始值开始无限递增计数。 无限循环遍历可迭代对象的元素。 注意:cycle 会将整个可迭代对象的内容缓存在内存中,对大型序列要谨慎使用。 重复输出同一个值,可指定次数或无限重复。 将多个可迭代对象首

By yellowdog

Python

contextlib 完全指南

contextlib 是 Python 标准库中用于支持上下文管理器的工具模块。它提供了一系列工具,让你无需手动实现 __enter__ / __exit__ 协议就能创建上下文管理器,同时也提供了管理多个上下文、异常抑制、输出重定向等实用工具。 上下文管理器是实现了 __enter__ 和 __exit__ 两个方法的对象,配合 with 语句使用: 等价于: 通过类实现上下文管理器是最基础的方式,适合需要维护状态的场景。 __exit__ 方法的参数说明: contextlib.contextmanager 允许用生成器函数来编写上下文管理器,代码更

By yellowdog

Python

asyncio 异步编程完全指南

asyncio 适合 I/O 密集型 任务(网络请求、文件读写、数据库查询)。CPU 密集型任务用 multiprocessing 或 concurrent.futures.ProcessPoolExecutor。 Python 3.7+ 推荐的入口,创建事件循环、运行协程、关闭循环: gather 参数说明: return_when 可选值: 异步代码中调用同步阻塞函数(如读文件、调用同步库)会阻塞整个事件循环。应用 run_in_executor 放到线程池/进程池执行: TaskGroup 在任意子任务失败时会自动取消其余任务,并将所有异常汇总为

By yellowdog

Python

Python 包管理工具

Python 生态中主流的包管理工具有 uv 和 Poetry。uv 是基于 Rust 开发的现代工具,速度极快,正逐渐成为主流首选;Poetry 是功能完善的传统选项,项目管理能力强。两者都以 pyproject.toml 作为项目配置文件。 相关文档:装饰器与函数高级(/python-zhuang-shi-qi-yu-han-shu-gao-ji-yong-fa/) | FastAPI完全指南(/fastapi-wan-quan-zhi-nan/) uv 是 Astral(Ruff 的开发团队)推出的 Python 包管理器和项目管理工具,用 Rus

By yellowdog