Python 语言全景
Python 的设计哲学、历史脉络和社区运作方式,合在一起才是这门语言的完整面貌。
Python 之禅
在 Python 解释器中输入 import this:
Beautiful is better than ugly. 优美优于丑陋
Explicit is better than implicit. 明了优于隐晦
Simple is better than complex. 简单优于复杂
Complex is better than complicated. 复杂优于繁杂
Flat is better than nested. 扁平优于嵌套
Readability counts. 可读性很重要
Errors should never pass silently. 错误绝不能悄悄忽略
There should be one — and preferably only one — obvious way to do it. 任何问题应有一种,且最好只有一种显而易见的解决方法
Now is better than never. 做优于不做
这些原则解释了 Python 的几乎所有设计决策。
语言特性
| 维度 | Python 的选择 |
|---|---|
| 类型系统 | 动态类型 + 渐进类型注解(PEP 484) |
| 执行模型 | 解释型,编译为字节码后由虚拟机执行 |
| 范式 | 多范式:面向对象 + 函数式 + 过程式 |
| 内存管理 | 引用计数 + 标记清除 + 分代 GC |
| 并发 | GIL(3.14t 可选移除) + threading + asyncio |
| 设计原则 | 一种显而易见的做法(而非多种) |
Python 拒绝花哨语法,选择明确无歧义的表达。这不是能力不够,而是价值观选择。
发展简史
起源
- 1989 — Guido van Rossum 在圣诞节假期开始写 Python,灵感来自 ABC 语言
- 1991 — Python 0.9.0 发布:类、继承、异常处理、模块系统
- 1994 — Python 1.0:lambda、map、filter、reduce
Python 2 时代
- 2000 — Python 2.0:列表推导式、Unicode、循环检测 GC
- 后续 2.x 版本引入:嵌套作用域、迭代器、生成器、装饰器、with 语句
Python 3 时代
- 2008 — Python 3.0:不向后兼容的大版本,“修复过去的错误”
- 2018 — Guido 卸任 BDFL,转向 Steering Council 治理模式
近年里程碑(2022→2026)
| 版本 | 年份 | 关键特性 |
|---|---|---|
| 3.11 | 2022 | 性能大幅提升(Faster CPython)、ExceptionGroup、TaskGroup |
| 3.12 | 2023 | PEP 695 type parameter 语法、per-interpreter GIL、f-string 改进 |
| 3.13 | 2024 | 实验性 free-threading(no-GIL)、实验性 JIT、新 REPL |
| 3.14 | 2025 | free-threading 正式支持、注解求值改进、异常处理语法优化 |
| 3.15 | 2026 | 显式 lazy import、内置 frozendict/sentinel、类型系统细化(PEP 800) |
版本生命周期
Python 每年 10 月发布一个大版本,每个版本有 5 年安全支持。
| 版本 | 发布 | 安全支持至 | 2026 状态 |
|---|---|---|---|
| 3.9 | 2020-10 | 2025-10 | ❌ EOL |
| 3.10 | 2021-10 | 2026-10 | ⚠️ 即将 EOL |
| 3.11 | 2022-10 | 2027-10 | ✅ 支持 |
| 3.12 | 2023-10 | 2028-10 | ✅ 主力 |
| 3.13 | 2024-10 | 2029-10 | ✅ 主力 |
| 3.14 | 2025-10 | 2030-10 | 🆕 最新 |
社区治理
PEP 流程
**PEP(Python Enhancement Proposal)**是 Python 的 RFC 等价物。任何 Python 变更(从语法到风格指南)都通过 PEP 提案 → 讨论 → 投票 → 实施。
PEP 有三种用途:
- 通知:发布日程等
- 标准化:PEP 8 风格指南、PEP 249 DB-API 等
- 设计:新功能提案
Steering Council
2018 年 Guido 卸任 BDFL(终身仁慈独裁者)后,Python 由五人 Steering Council 民主治理,每年选举。
核心贡献
Python 本身在 GitHub(python/cpython)上开发,任何人都可以参与。问题讨论在 discuss.python.org。
三语言选型速查
对于 20-programming/ 覆盖的三门语言,按场景的推荐选择:
| 场景 | 推荐语言 | 理由 |
|---|---|---|
| 快速原型 / 数据科学 / 脚本 | Python | 灵活的动态类型,生态丰富,写即运行 |
| Web 全栈 / 已有 JS 生态 | TypeScript | 结构化类型自然适配 JSON/API,与 JS 无缝集成 |
| 系统编程 / 性能关键 / 安全敏感 | Rust | 编译时安全保证,零运行时代价 |
| 大型团队 / 长期维护项目 | TS 或 Rust | 静态类型提供文档和重构保障 |
| Python 大型项目 | Python + 严格 mypy | 渐进类型提供部分静态检查能力 |
没有”最好的语言”,只有”最适合当前场景的语言”。详见 编程语言与软件构造 MOC。
关联
- TypeScript: 语言全景 — Python→TS 迁移对照
- 编程范式 MOC — Python 支持的范式全景