返回专题列表

TOPIC · PYTHON

Python 专题

从语言基础、对象模型、类型与工程实践,到并发、FastAPI 与自动化延展,按章节顺序整理的系统学习内容。

专题概览

39 篇 · 持续维护

适合按章节顺序连续阅读,也可以按阶段挑选当前最需要的部分进入。

  • Python
  • 工程实践
  • FastAPI
从第一篇开始

STAGE

基础建立

第 01 篇9 分钟

开篇:用正确的方式学习 Python

最近几年,Python 已经从一门“好上手的脚本语言”,逐渐变成了覆盖 Web 后端、数据分析、自动化、AI 工程等多个方向的通用工具。无论你是想补齐编程基础,还是想快速把想法落成脚本与服务,Python 都是一个很难绕开的选择。

第 02 篇10 分钟

工欲善其事:打造最舒适的 Python 开发环境

在正式开始学习 Python 之前,我们最好先把开发环境整理顺手。一个清晰、稳定、反馈及时的环境,不仅能提高学习效率,也能帮你避免很多“明明代码没问题,却跑不起来”的低级干扰。

第 03 篇9 分钟

进入 Python 的世界:理解解释器、脚本与模块运行

很多初学者在写 Python 时,最先接触到的是“能跑起来”,但对代码到底是怎么被执行的、脚本与模块有什么区别、`python xxx.py` 和 `python -m` 为什么行为不同,并没有形成稳定认知。

第 04 篇9 分钟

掌握基础数据类型:数字、字符串、布尔值与 None

学习任何一门语言,最先接触的都是数据类型。Python 在这部分看起来很直观,但真正写起代码来,数字计算、字符串处理、真值判断以及 `None` 的语义,仍然是最容易积累误解的地方。

第 05 篇8 分钟

常见容器类型详解:列表、元组、字典与集合的选择

写 Python 时,真正陪伴你最多的并不是复杂语法,而是各种容器类型。列表、元组、字典、集合看起来都像“装数据的盒子”,但它们在顺序性、可变性、查找方式和适用场景上其实差别很大。

第 06 篇9 分钟

流程控制与表达式:条件分支、循环与推导式入门

当我们掌握了基本数据类型和容器后,下一步就是让代码真正“动起来”。条件分支决定程序走哪条路,循环决定它如何反复处理数据,而推导式则体现了 Python 在表达上的简洁与高效。

第 07 篇9 分钟

函数是组织代码的起点:参数、返回值与作用域详解

从这一节开始,我们会正式进入“如何组织代码”的阶段。函数是 Python 中最基础也最重要的抽象单位,很多看似零散的逻辑,一旦收拢成函数,代码的复用性、可测试性和可读性都会显著提升。

第 08 篇6 分钟

从脚本到模块化:理解 import、包结构与代码复用

很多人在学 Python 的前半段,都是把所有代码写在一个文件里。这样做确实适合练习,但一旦逻辑稍微变多,就会立刻暴露出复用困难、引用混乱、职责不清的问题。

STAGE

核心机制

第 09 篇6 分钟

面向对象入门:类、实例、属性与方法的基本心智

Python 并不是一门必须重度依赖面向对象的语言,但只要你开始接触稍微复杂一点的业务代码、框架代码或第三方库,就一定会和类、实例、属性、方法这些概念打交道。

第 10 篇6 分钟

面向对象进阶:继承、组合、多态与 super 的使用

理解了类和实例之后,真正让很多人头疼的,往往是继承链、`super()`、组合关系和多态设计。这些概念一旦没有想清楚,代码很容易变成“能运行,但很难维护”的样子。

第 11 篇5 分钟

Python 数据模型:魔术方法与对象行为定制

很多 Python 代码看起来很“自然”,比如对象可以被打印、可以参与运算、可以像容器一样迭代、甚至可以像函数一样调用。这些行为背后依赖的,其实就是 Python 数据模型以及一系列魔术方法。

第 12 篇6 分钟

错误不可怕:异常处理、自定义异常与错误边界

程序一旦进入真实场景,出错不是例外,而是常态。读文件可能失败,请求可能超时,参数可能非法,数据库也可能断开连接。问题从来不是“会不会出错”,而是“出错后我们怎么处理”。

第 13 篇5 分钟

惰性计算的力量:迭代器、生成器与 yield 详解

如果说列表和字典解决的是“怎么存数据”,那么迭代器和生成器解决的就是“怎么流动地处理数据”。它们看起来比普通容器更抽象一些,但一旦理解了惰性计算的好处,就会发现这套机制在性能和表达力上都非常强大。

第 14 篇5 分钟

装饰器的本质:闭包、语法糖与常见应用场景

装饰器几乎是 Python 最具代表性的高级特性之一。很多框架、很多工具库都把它当成表达横切逻辑的核心手段,但如果只记住 `@xxx` 的语法,很容易在稍微复杂一点的场景里失去方向。

第 15 篇4 分钟

用 with 管好资源:上下文管理器与 contextlib 实战

很多资源都有“申请”和“释放”两个动作,文件句柄如此,数据库连接如此,锁和事务也是如此。如果释放动作完全靠人记忆,代码就会变得又脆弱又难维护。

第 16 篇4 分钟

更优雅的数据表达:dataclass、NamedTuple 与 TypedDict

当数据结构变得越来越复杂时,单纯依赖列表和字典往往已经不够了。我们既希望表达清晰,又不想一上来就写很多样板代码,这时候 `dataclass`、`NamedTuple` 和 `TypedDict` 就会变得非常有价值。

第 17 篇4 分钟

给动态语言加一点约束:Python 类型标注入门

Python 是动态语言,但这并不意味着它不需要类型信息。随着项目规模增长,参数含义、返回值结构、可空性边界都会变得越来越重要,而类型标注正是帮助我们降低沟通成本和理解成本的重要手段。

第 18 篇5 分钟

类型系统进阶:Generic、TypeVar、Protocol 与工程实践

当你开始给项目补充类型标注时,很快就会遇到一个问题:简单类型很好写,但一旦涉及“容器里装的是什么”“不同参数之间存在什么约束”“这个对象只要具备某些方法就能用”这类情况,基础标注就不够了。

STAGE

工程实践

第 19 篇4 分钟

与外部世界交互:文件读写、路径处理与编码问题

只要程序不再停留在内存里的小练习,就一定要和外部世界打交道。读配置文件、写日志、处理 CSV、拼接路径、跨平台运行,这些看起来琐碎的操作,往往才是日常开发中最常见的“真问题”。

第 20 篇4 分钟

标准库工具箱(上):collections、itertools 与 functools

Python 的一个重要优势,就是标准库足够丰富。很多看起来需要自己从头写的能力,标准库里其实早就给出了成熟而优雅的方案。

第 21 篇5 分钟

标准库工具箱(下):datetime、logging、subprocess 与 pathlib

除了容器和函数式工具之外,Python 标准库里还有一批更偏工程实践的成员。时间处理、日志记录、子进程调用、路径操作,这些能力几乎贯穿了所有真实项目。

第 22 篇4 分钟

管理好你的依赖:venv、pip 与 pyproject.toml

很多 Python 项目真正的混乱,并不是从业务代码开始的,而是从环境和依赖开始的。解释器版本不同、包版本冲突、虚拟环境混用、依赖描述不完整,都会让一个项目变得难以复现、难以上手。

第 23 篇4 分钟

让代码更可靠:格式化、Lint、类型检查与提交前校验

代码质量这件事,不能只靠“我下次注意一下”。越是多人协作、越是长期维护的项目,越需要把格式统一、静态检查和类型校验前置成工具流程。

第 24 篇4 分钟

测试你的 Python 代码:pytest、fixture 与 mock 实践

Python 开发常常给人一种“改完就跑一下看看”的轻盈感,但一旦项目稍微复杂,单靠手点和临时验证是远远不够的。没有测试的项目,往往在改动积累到一定程度后就会开始畏手畏脚。

第 25 篇4 分钟

如何组织一个 Python 项目:脚本、包与服务的结构设计

目录结构从来不是“放文件的细节”,而是项目认知的一部分。一个结构清晰的 Python 项目,会天然帮助你划清模块边界、减少循环依赖、提高新成员的理解速度。

第 26 篇4 分钟

从本地代码到可复用工具:Python 包构建与发布入门

当一段代码开始在不同项目里重复出现时,把它做成一个真正可安装、可复用的 Python 包,往往比复制粘贴更值得。包化不仅是复用方式的升级,也是工程边界更清晰的一种表现。

第 27 篇4 分钟

别忽视这些坑:性能优化、内存行为与常见陷阱

Python 的语法很友好,但这并不意味着它没有坑。可变默认参数、拷贝语义、引用共享、生成器和列表的内存差异、GIL 的影响,这些问题一旦在实际项目里出现,往往都不是一句“语法记错了”能带过的。

STAGE

并发与服务开发

第 28 篇4 分钟

并发基础:线程、进程与协程到底该怎么选

“并发”是 Python 里特别容易被说混的一件事。很多人知道线程、进程和协程这几个名词,却不清楚它们各自解决什么问题,也不知道该如何根据任务类型做判断。

第 29 篇4 分钟

asyncio 入门:事件循环、协程调度与异步编程模型

如果说上一节解决的是“有几种并发方式”,那么这一节要解决的就是“Python 的异步模型到底是怎么运转的”。很多人会写 `async` 和 `await`,但对事件循环、任务调度、取消和异常传播并没有形成稳定理解。

第 30 篇4 分钟

发起一次可靠请求:requests、httpx 与接口调用实践

网络请求几乎是所有 Python 项目的基础动作之一,无论你是在写爬虫、脚本、自动化任务,还是 Web 服务,最终都要面对超时、失败、重试、连接复用和错误处理这些现实问题。

第 31 篇6 分钟

在 FastAPI 中愉快地使用 Python:路由、类型与校验协作

到了这一节,我们会开始把前面学过的类型标注、数据建模、异常处理和模块组织能力,真正带进一个现代 Python Web 框架里。FastAPI 之所以受欢迎,很大一部分原因就在于它把类型、校验和文档协同得非常自然。

第 32 篇4 分钟

数据持久化基础:SQLAlchemy 的模型、查询与事务管理

只要应用开始保存数据,数据库和 ORM 就迟早会进入你的视野。SQLAlchemy 是 Python 生态里最重要的数据库工具之一,但很多初学者第一次接触时,往往会被模型、会话、事务这些概念弄得有些割裂。

第 33 篇3 分钟

基于 FastAPI + SQLAlchemy 的 Blog API:前置知识储备

前面我们已经分别认识了 FastAPI 和 SQLAlchemy,现在是时候把它们放进一个完整的项目背景里了。相比零散示例,一个小型但完整的 Blog API 更能帮助我们理解这些技术是如何协同工作的。

第 34 篇5 分钟

基于 FastAPI + SQLAlchemy 的 Blog API:项目开发与接口设计

有了前置认知之后,接下来就轮到真正的接口设计与开发实现。一个 API 项目真正考验的,往往不是“会不会写路由”,而是职责如何拆分、字段如何约定、错误如何表达,以及不同接口之间能否保持一致。

第 35 篇4 分钟

基于 FastAPI + SQLAlchemy 的 Blog API:测试、部署与上线实践

写完接口并不意味着项目结束。真正能不能稳定运行,还要看测试是否覆盖关键路径、配置是否区分环境、部署方式是否清晰、上线后是否具备基本的排障和观测能力。

STAGE

自动化与延展