Python 中的 GIL 是什么及其对性能的影响
理解 CPython 的全局解释器锁,为什么线程无法加速 CPU 密集型代码,何时使用 threading、multiprocessing 和无 GIL 版本。
理解 CPython 的全局解释器锁,为什么线程无法加速 CPU 密集型代码,何时使用 threading、multiprocessing 和无 GIL 版本。
使用 pyproject.toml 打包 Python 库,构建 wheel,在 TestPyPI 上测试,然后使用令牌或受信发布者发布到 PyPI。
为什么线程不能加速 CPU 密集型代码,以及如何使用 multiprocessing、Pool 和 ProcessPoolExecutor 来充分利用所有 CPU 核心。
生产环境日志配置:模块级 logger、dictConfig、JSON 日志、使用 contextvars 的 request_id、QueueHandler 和使用 caplog 进行测试。
使用 pathlib.Path 替代 os.path 和 os 进行路径拼接、拆解、读写和遍历文件。包括对比表、pytest 测试和常见错误。
如何使用try/except/else/finally、自定义异常、raise from、日志记录、ExceptionGroup以及如何使用pytest测试异常。
如何使用Pydantic v2验证输入数据:BaseModel、Field、field_validator、model_validator、strict mode、TypeAdapter和如何用pytest测试。
使用 FastAPI 和 Pydantic v2 构建 REST API,在入口处拦截错误数据,包括自定义 422 错误格式和使用 pytest 编写测试。
Python 中 List、Dict、Set 推导式和生成器表达式的用法,如何写得简洁易读,常见错误和何时应该回到 for 循环。
指南:使用 pytest 编写测试、使用 fixture 准备数据、清理资源、通过 conftest.py 共享和参数化测试。
如何创建虚拟环境、用 pip 管理 package 并使用 pyproject.toml 声明 Python 项目,附带可运行的示例和常见错误。
理解with语句的工作原理,用类或contextlib编写上下文管理器,正确处理异常,避免常见错误
了解 generator、yield 以及它们如何帮助您处理巨大文件或数据流,而无需将所有数据加载到内存中。
学习Python装饰器的演进过程:从@语法、闭包、functools.wraps,到接收参数的装饰器和基于类的装饰器。
通过 3 个实际问题区分 Python 中的 asyncio 和 threading,帮助你为每种任务类型选择正确的并发模型。
学习Python的dataclasses模块,帮助你编写精简的数据类,自动生成__init__、__repr__、__eq__方法,无需编写重复代码。
学习如何使用类型提示使 Python 代码更清晰,以及使用 mypy 在运行前捕获类型错误。