基础

Python

魔术方法完全参考

魔术方法(Magic Methods),也称双下方法(Dunder Methods),是 Python 中以双下划线开头和结尾的特殊方法。Python 解释器在特定操作时自动调用这些方法,通过实现它们可以让自定义类与 Python 的内置语法和协议无缝集成。 创建实例时最先调用的静态方法,负责分配内存并返回新实例。 返回值:返回新创建的实例(通常是 cls 的实例)。若不返回 cls 的实例,则不会调用 __init__。 触发时机:调用 MyClass(...) 时,在 __init__ 之前调用。 实例初始化方法,负责设置实例属性。 返回值:必须返回

By yellowdog

Python

Python 装饰器与函数高级用法

不接收 self 或 cls,等同于普通函数,只是命名空间归类在类里。 Python 3.10+ 起静态方法继承原函数的属性(__module__、__name__、__qualname__、__doc__、__annotations__),并新增 __wrapped__ 属性,且可直接作为普通函数调用(无需通过类或实例)。 接收 cls(类本身)而非 self(实例),可在不创建实例的情况下访问类变量。 Python 3.10+ 起类方法继承原函数的属性(__module__、__name__、__qualname__、__doc__、__annota

By yellowdog

Python

Python 内置数据类型完全参考

Python 整数无大小限制,自动支持大整数运算。 返回表示该整数所需的二进制位数(不含符号位和前导零)。 返回整数二进制表示中 1 的个数(汉明重量)。 返回 (numerator, denominator) 使分数等价于该整数,分母为 1。 始终返回 True。为与 float.is_integer() 进行鸭子类型兼容而存在。 基于 IEEE 754 双精度(64 位)。 判断浮点值是否为整数(无小数部分)。 返回 IEEE 754 十六进制字符串表示。用于精确序列化浮点数。 从 hex() 返回的字符串还原浮点数,可跨平台精确还原。 返回分子/分

By yellowdog

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