第1章 Python简介与环境搭建
学习目标
完成本章学习后,读者将能够:
- 阐述Python语言的设计哲学、发展历程及其在软件工程中的定位
- 理解Python解释器的执行模型与字节码编译机制
- 独立完成Python开发环境的搭建与配置
- 熟练使用虚拟环境管理项目依赖
- 遵循PEP 8编码规范编写符合行业标准的Python代码
1.1 Python语言概述
1.1.1 设计哲学与诞生背景
Python由荷兰计算机科学家Guido van Rossum于1989年圣诞节期间开始设计,1991年首次发布。其名称源自英国喜剧团体Monty Python,而非蟒蛇——这一命名反映了语言设计者对编程乐趣的追求。
Python的核心设计哲学可概括为**"优雅、明确、简单"**,在Python解释器中输入import this即可阅读Tim Peters撰写的《The Zen of Python》:
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Readability counts.
...这些原则深刻影响了Python的语法设计与生态系统演进,使其成为最注重代码可读性的主流编程语言之一。
1.1.2 发展历程与版本演进
| 版本 | 发布年份 | 里程碑特性 | 工程意义 |
|---|---|---|---|
| Python 1.0 | 1994 | 函数式编程工具(lambda/map/filter)、异常处理 | 奠定语言基础 |
| Python 2.0 | 2000 | 列表推导式、垃圾回收、Unicode支持 | 提升表达能力 |
| Python 2.7 | 2010 | 最后一个2.x版本 | EOL: 2020-01-01 |
| Python 3.0 | 2008 | 不向后兼容的重新设计(print函数、整数除法、Unicode默认) | 修复历史设计债务 |
| Python 3.6 | 2016 | f-string、变量注解、异步生成器 | 现代化语法 |
| Python 3.8 | 2019 | 海象运算符(:=)、位置仅限参数 | 提升代码简洁性 |
| Python 3.9 | 2020 | 字典合并运算符(|)、泛型类型提示增强 | 类型系统完善 |
| Python 3.10 | 2021 | 结构模式匹配(match/case)、精确错误定位 | 语法表达力飞跃 |
| Python 3.11 | 2022 | 速度提升10-60%、异常组与except* | 性能里程碑 |
| Python 3.12 | 2023 | 更好的错误消息、性能优化、类型参数语法 | 开发体验优化 |
| Python 3.13 | 2024 | 实验性自由线程模式(no-GIL)、JIT编译器 | 架构性变革 |
学术注记:Python 3.13引入的自由线程模式(PEP 703)是语言历史上最重要的架构变更之一,它移除了全局解释器锁(GIL),使Python线程能够真正并行执行。这一变更对多线程编程范式产生了深远影响。
1.1.3 Python的执行模型
与C/C++等编译型语言不同,Python采用解释执行模型,但其内部实现并非简单的逐行解释:
源代码(.py) → 词法分析 → 语法分析 → AST → 字节码编译 → 字节码(.pyc) → 虚拟机执行- 编译阶段:Python源代码首先被编译为字节码(Bytecode),存储在
.pyc文件中 - 执行阶段:Python虚拟机(PVM)逐条执行字节码指令
- 优化机制:从Python 3.11起引入的特化自适应解释器会在运行时对热点代码进行优化
import dis
def greet(name):
return f"Hello, {name}!"
dis.dis(greet)通过dis模块可以查看函数的字节码指令,理解Python的底层执行逻辑。
1.1.4 Python的优势与局限
核心优势:
| 优势 | 说明 | 典型场景 |
|---|---|---|
| 开发效率高 | 代码量通常为Java的1/3、C++的1/5 | 快速原型、MVP开发 |
| 生态丰富 | PyPI收录超过50万个第三方包 | 几乎所有应用领域 |
| 可读性强 | 强制缩进、简洁语法 | 团队协作、代码审查 |
| 跨平台 | 解释器覆盖主流操作系统 | 跨平台部署 |
| 多范式 | 面向对象、函数式、过程式 | 灵活架构设计 |
| 胶水语言 | 与C/C++无缝互操作 | 性能关键模块扩展 |
已知局限:
| 局限 | 原因 | 应对策略 |
|---|---|---|
| 执行速度 | 解释执行、动态类型 | Cython/Numba加速、关键路径用C扩展 |
| GIL限制 | 历史设计决策 | 多进程、异步IO、Python 3.13+自由线程 |
| 移动端弱 | 生态不成熟 | Kivy/BeeWare、核心逻辑用Python+UI用原生 |
| 打包部署 | 依赖管理复杂 | Docker容器化、PyInstaller/Nuitka |
| 运行时错误 | 动态类型 | 类型注解+mypy静态检查 |
1.1.5 应用领域全景
┌──────────────────────────────────────────────────────────────────┐
│ Python应用领域与核心工具链 │
├──────────────┬───────────────────────────────────────────────────┤
│ Web开发 │ Django, Flask, FastAPI, Starlette, Sanic │
│ 数据科学 │ NumPy, Pandas, Polars, Matplotlib, Seaborn │
│ 机器学习 │ TensorFlow, PyTorch, JAX, Scikit-learn │
│ 深度学习 │ Keras, Hugging Face, PyTorch Lightning │
│ 自动化运维 │ Ansible, SaltStack, Fabric, Nornir │
│ 网络爬虫 │ Scrapy, BeautifulSoup, Playwright, httpx │
│ 游戏开发 │ Pygame, Arcade, Panda3D, Ren'Py │
│ 桌面应用 │ PyQt, PySide6, Tkinter, wxPython │
│ 科学计算 │ SciPy, SymPy, SageMath │
│ 数据可视化 │ Plotly, Bokeh, Altair, PyEcharts │
│ 自然语言处理 │ NLTK, spaCy, Transformers, LangChain │
│ 量化金融 │ Zipline, Backtrader, QuantLib-Python │
│ 图像处理 │ Pillow, OpenCV, scikit-image │
│ 音视频处理 │ MoviePy, PyDub, OpenCV │
│ 系统编程 │ ctypes, cffi, subprocess, asyncio │
└──────────────┴───────────────────────────────────────────────────┘行业洞察:根据Stack Overflow 2024年开发者调查,Python连续多年位居"最受欢迎编程语言"前三,在数据科学、AI/ML领域使用率超过70%。Python也是GitHub上贡献者数量最多的语言之一。
1.2 Python版本选择策略
1.2.1 Python 2与Python 3
Python 2已于2020年1月1日正式停止维护(EOL),所有新项目必须使用Python 3。主要不兼容差异:
# Python 2 # Python 3
print "Hello" print("Hello")
5 / 2 # → 2 (整数除法) 5 / 2 # → 2.5 (浮点除法)
5 // 2 # → 2 5 // 2 # → 2
str # → 字节字符串 str # → Unicode字符串
unicode # → Unicode字符串 (已移除)
range # → 返回列表 range # → 返回迭代器
xrange # → 返回迭代器 (已移除)1.2.2 版本选择决策矩阵
| 场景 | 推荐版本 | 理由 |
|---|---|---|
| 学习入门 | 3.12+ | 最佳错误提示、最新语法特性 |
| 生产环境 | 3.10+ | 稳定、生态支持完善、模式匹配 |
| 数据科学 | 3.10+ | 主流库全面支持 |
| 遗留维护 | 3.8+ | 最低安全支持版本 |
最佳实践:在
pyproject.toml或setup.cfg中明确声明python_requires,确保项目运行在受支持的Python版本上。
1.3 环境搭建
1.3.1 Windows安装
方法一:官网安装(推荐)
- 访问 https://www.python.org/downloads/
- 下载最新稳定版安装包
- 运行安装程序,务必勾选"Add Python to PATH"
- 选择"Customize installation",确保勾选:
- pip
- tcl/tk and IDLE
- Python test suite
- py launcher
方法二:winget命令安装
winget install Python.Python.3.12方法三:Microsoft Store
适用于轻量使用场景,但存在路径限制,不推荐专业开发使用。
验证安装:
python --version
# Python 3.12.x
pip --version
# pip 24.x from ...
python -c "import sys; print(sys.executable)"
# 显示Python解释器路径1.3.2 macOS安装
方法一:Homebrew(推荐)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install python@3.12
python3 --version方法二:pyenv(多版本管理)
brew install pyenv
pyenv install 3.12.0
pyenv global 3.12.0
pyenv versions1.3.3 Linux安装
# Ubuntu/Debian
sudo apt update
sudo apt install python3.12 python3.12-venv python3.12-dev python3-pip
# Fedora
sudo dnf install python3.12 python3.12-devel
# Arch Linux
sudo pacman -S python
# 从源码编译(需要时)
wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz
tar xzf Python-3.12.0.tgz
cd Python-3.12.0
./configure --enable-optimizations --with-lto
make -j$(nproc)
sudo make altinstall1.3.4 环境变量配置
Windows:
安装时勾选"Add Python to PATH"会自动配置。如需手动配置:
- 右键"此电脑" → "属性" → "高级系统设置" → "环境变量"
- 在系统变量"Path"中添加:
C:\Python312\C:\Python312\Scripts\
Linux/macOS:
编辑 ~/.bashrc 或 ~/.zshrc:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"1.4 开发工具体系
1.4.1 交互式解释器(REPL)
Python REPL(Read-Eval-Print Loop)是快速实验和学习的重要工具:
$ python
Python 3.12.0 (main, Oct 2 2023, 10:00:00) [MSC v.1935 64 bit (AMD64)]
Type "help", "copyright", "credits" or "license" for more information.
>>> 2 + 3
5
>>> import this
... (The Zen of Python)
>>> help(str)
... (str类的帮助文档)
>>> dir(str)
... (str类的所有属性和方法)增强型REPL推荐:
# IPython - 增强交互式Shell
pip install ipython
ipython
# 特性:语法高亮、自动补全、魔术命令、历史记录
In [1]: %timeit sum(range(1000))
In [2]: obj?<Tab> # 对象内省
In [3]: %run script.py # 运行脚本1.4.2 集成开发环境
VS Code(推荐初学者与全栈开发者)
必备扩展:
- Python(Microsoft)- 核心语言支持
- Pylance - 高性能语言服务器,提供智能补全与类型检查
- Python Debugger - 调试支持
- Ruff - 快速代码检查与格式化
- Python Test Explorer - 测试运行器
推荐配置(.vscode/settings.json):
{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"python.analysis.typeCheckingMode": "basic",
"python.analysis.autoImportCompletions": true,
"editor.formatOnSave": true,
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
},
"python.testing.pytestEnabled": true
}PyCharm(推荐专业Python开发者)
- Community版:免费,适合纯Python开发
- Professional版:付费,支持Web开发、数据库工具、远程开发
Jupyter Notebook/Lab(推荐数据科学与教学)
pip install jupyterlab
jupyter lab1.4.3 在线开发环境
无需本地安装,适合快速实验:
- Google Colab - 免费GPU/TPU,适合深度学习
- Replit - 即时协作开发
- GitHub Codespaces - 云端VS Code
1.5 虚拟环境与依赖管理
1.5.1 为什么需要虚拟环境
在多项目开发中,不同项目可能依赖同一包的不同版本。虚拟环境通过创建隔离的Python运行环境解决此问题:
系统Python 3.12
│
├── 项目A虚拟环境
│ ├── Django 4.2
│ ├── requests 2.31
│ └── Python 3.12
│
├── 项目B虚拟环境
│ ├── Django 5.0
│ ├── httpx 0.25
│ └── Python 3.12
│
└── 项目C虚拟环境
├── FastAPI 0.104
├── SQLAlchemy 2.0
└── Python 3.111.5.2 venv(标准库方案)
# 创建虚拟环境
python -m venv .venv
# Windows激活
.venv\Scripts\activate
# Linux/macOS激活
source .venv/bin/activate
# 验证
which python # Linux/macOS
where python # Windows
# 退出
deactivate1.5.3 conda(数据科学方案)
# 安装Miniconda(轻量版)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 创建环境
conda create -n ml-project python=3.12 numpy pandas scikit-learn
# 激活
conda activate ml-project
# 导出环境
conda env export > environment.yml
# 从配置恢复
conda env create -f environment.yml1.5.4 uv(现代高性能方案)
uv是由Astral团队(Ruff的开发者)用Rust编写的极速Python包管理器:
# 安装
pip install uv
# 创建虚拟环境并安装包
uv venv
uv pip install requests flask
# 从requirements.txt安装(速度比pip快10-100倍)
uv pip install -r requirements.txt1.5.5 Poetry(现代项目管理方案)
# 安装
pip install poetry
# 创建新项目
poetry new myproject
# 初始化现有项目
poetry init
# 添加依赖
poetry add requests
poetry add pytest --group dev
# 安装所有依赖
poetry install
# 运行命令
poetry run python main.py
# 构建发布
poetry buildpyproject.toml示例:
[tool.poetry]
name = "myproject"
version = "0.1.0"
description = "A sample project"
authors = ["Your Name <your.email@example.com>"]
[tool.poetry.dependencies]
python = "^3.10"
requests = "^2.31"
[tool.poetry.group.dev.dependencies]
pytest = "^7.4"
black = "^23.0"
mypy = "^1.5"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"1.6 包管理
1.6.1 pip核心操作
# 安装
pip install requests
pip install requests==2.31.0
pip install "requests>=2.28,<3.0"
pip install requests[security]
# 升级
pip install --upgrade requests
# 卸载
pip uninstall requests
# 查询
pip list
pip show requests
pip outdated
# 依赖管理
pip freeze > requirements.txt
pip install -r requirements.txt
# 安全审计
pip audit1.6.2 requirements.txt规范
# 精确版本 - 生产环境推荐
requests==2.31.0
flask==3.0.0
# 兼容版本 - 允许补丁更新
numpy~=1.26.0 # >=1.26.0, <1.27.0
# 最小版本 - 允许次版本更新
django>=4.2,<5.1
# 可选依赖
redis>=5.0.0 ; platform_system != "Windows"
pywin32>=306 ; platform_system == "Windows"1.6.3 国内镜像加速
# 临时使用
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
# 永久配置
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn| 镜像源 | URL |
|---|---|
| 清华大学 | https://pypi.tuna.tsinghua.edu.cn/simple |
| 阿里云 | https://mirrors.aliyun.com/pypi/simple |
| 中国科技大学 | https://pypi.mirrors.ustc.edu.cn/simple |
| 豆瓣 | https://pypi.doubanio.com/simple |
1.7 第一个Python程序
1.7.1 交互式运行
>>> print("Hello, Python!")
Hello, Python!
>>> 1 + 2 + 3
6
>>> "Python " * 3
'Python Python Python '
>>> type(42)
<class 'int'>
>>> help(print)1.7.2 脚本文件运行
创建 hello.py:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""我的第一个Python程序
这是一个简单的入门示例,演示Python脚本的基本结构。
"""
import sys
def greet(name: str) -> str:
"""生成问候语
Args:
name: 被问候者的名字
Returns:
格式化的问候字符串
"""
return f"你好,{name}!欢迎进入Python的世界!"
def main() -> None:
"""主函数"""
print("Hello, Python!")
name = input("请输入你的名字:").strip()
if not name:
print("未输入名字,使用默认值。")
name = "世界"
message = greet(name)
print(message)
if __name__ == "__main__":
main()运行方式:
python hello.py
chmod +x hello.py && ./hello.py # Linux/macOS1.7.3 程序结构解析
#!/usr/bin/env python3 # Shebang行,指定解释器(Unix系统)
# -*- coding: utf-8 -*- # 源文件编码声明(Python 3默认UTF-8,可省略)
"""模块文档字符串
描述模块的功能、作者、创建日期等信息。
可通过 module.__doc__ 访问。
"""
import os # 标准库导入
import sys
import requests # 第三方库导入
from mypackage import mymodule # 本地模块导入
CONSTANT = "常量值" # 模块级常量
class MyClass: # 类定义
"""类的文档字符串"""
pass
def function(): # 函数定义
"""函数的文档字符串"""
pass
def main() -> None: # 主函数
"""程序入口"""
pass
if __name__ == "__main__": # 入口判断
main()工程实践:
if __name__ == "__main__"模式确保模块既可以作为脚本直接运行,也可以被其他模块导入而不执行主逻辑。这是Python项目的标准入口模式。
1.8 代码风格与规范
1.8.1 PEP 8编码规范
PEP 8是Python官方代码风格指南,是Python社区最重要的编码约定:
# 缩进:4个空格(禁止使用Tab)
def function():
if True:
print("使用4个空格缩进")
# 行宽:最多79字符(文档字符串/注释72字符)
long_variable_name = (
"这是一个很长的字符串,"
"使用括号隐式续行"
)
# 空行规则
class MyClass: # 类定义前2个空行
"""类的文档字符串"""
def method1(self): # 方法间1个空行
pass
def method2(self):
pass
def top_level_function(): # 顶层函数间2个空行
pass
# 导入规范
import os # 标准库
import sys
import numpy as np # 第三方库
import requests
from mypackage import mymodule # 本地模块
# 空格规则
x = 1 # 赋值运算符两侧各一个空格
y = x + 2 # 算术运算符两侧各一个空格
result = function(arg1, arg2) # 逗号后一个空格,括号内无空格1.8.2 命名规范
# 变量和函数:snake_case
user_name = "Alice"
def calculate_total_price():
pass
# 常量:UPPER_SNAKE_CASE
MAX_CONNECTIONS = 100
DEFAULT_TIMEOUT = 30
PI = 3.14159265
# 类名:PascalCase(大驼峰)
class UserProfile:
pass
class HTTPServer:
pass
# 模块和包:short_lowercase
# my_module.py, mypackage/
# 私有属性:单下划线前缀(约定,非强制)
class MyClass:
def _internal_method(self): # 内部使用
pass
# 名称修饰:双下划线前缀(触发名称修饰机制)
class MyClass:
def __mangled_method(self): # _MyClass__mangled_method
pass
# 魔术方法:双下划线包围
class MyClass:
def __init__(self): # 构造器
pass
def __repr__(self): # 官方字符串表示
pass
def __str__(self): # 非官方字符串表示
pass1.8.3 类型注解
Python 3.5+支持类型注解(Type Hints),提升代码可读性和IDE支持:
from typing import Optional, list, Union
def greet(name: str, formal: bool = False) -> str:
if formal:
return f"Good day, {name}."
return f"Hi, {name}!"
def find_user(user_id: int) -> Optional[dict]:
"""返回用户信息,未找到则返回None"""
pass
def process(data: Union[str, bytes]) -> str:
"""接受str或bytes,返回str"""
pass
# Python 3.10+ 使用 | 语法
def process(data: str | bytes) -> str:
pass
def find_user(user_id: int) -> dict | None:
pass1.8.4 代码质量工具链
# Ruff - 超快速代码检查与格式化(推荐,替代flake8+isort+black)
pip install ruff
ruff check . # 检查
ruff format . # 格式化
ruff check --fix . # 自动修复
# mypy - 静态类型检查
pip install mypy
mypy mycode.py
# pre-commit - Git钩子自动化
pip install pre-commit.pre-commit-config.yaml:
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.4.0
hooks:
- id: ruff
args: [--fix]
- id: ruff-format
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.10.0
hooks:
- id: mypy1.9 前沿技术动态
1.9.1 Python 3.13 自由线程模式
Python 3.13引入了实验性的自由线程模式(Free-threaded CPython,PEP 703),这是Python历史上最重要的性能改进之一:
# 启用自由线程模式构建Python
# ./configure --disable-gil && make
# 检测是否运行在自由线程模式
import sys
if hasattr(sys, '_is_gil_enabled'):
print(f"GIL enabled: {sys._is_gil_enabled()}")影响与挑战:
- 多线程CPU密集型任务可获得真正的并行执行
- C扩展需要重新适配以确保线程安全
- 单线程性能可能略有下降(约10-15%)
- 内存管理需要更细粒度的锁机制
1.9.2 子解释器(PEP 684)
Python 3.12引入了每解释器GIL,支持子解释器隔离:
import _interpreters
# 创建子解释器
interp_id = _interpreters.create()
# 在子解释器中执行代码
_interpreters.run_string(interp_id, "print('Hello from subinterpreter')")
# 销毁子解释器
_interpreters.destroy(interp_id)1.9.3 JIT编译器(PEP 744)
Python 3.13引入实验性JIT编译器,采用copy-and-patch技术:
# 启用JIT编译器
PYTHON_JIT=1 python your_script.py1.9.4 现代开发工具演进
| 工具 | 特点 | 适用场景 |
|---|---|---|
| uv | Rust实现,极速依赖解析 | 新项目首选 |
| Ruff | Rust实现,一体化Linter/Formatter | 替代flake8/black |
| pyright | 微软类型检查器,速度快 | VS Code默认 |
| rye | Armin Ronacher的全栈工具 | 个人项目 |
1.9.5 Python在AI时代的新角色
Python在人工智能和机器学习领域的地位日益巩固:
- PyTorch 2.0:引入
torch.compile()动态编译 - JAX:Google的函数式数值计算框架
- Mojo:Python超集,兼容Python语法但性能提升68000倍
- Codon:Python编译器,生成原生机器码
1.10 本章小结
本章系统介绍了Python语言的核心概念与开发环境搭建:
- 语言定位:Python以可读性和开发效率为核心设计目标,采用解释执行模型,字节码编译后由PVM执行
- 版本策略:所有新项目必须使用Python 3.10+,关注3.13+自由线程模式的演进
- 环境搭建:掌握各平台安装方法,理解环境变量配置
- 开发工具:VS Code+Ruff是当前最佳轻量组合,PyCharm适合大型项目
- 虚拟环境:venv满足基本需求,Poetry/uv提供现代项目管理体验
- 编码规范:PEP 8是社区共识,类型注解+mypy提升代码质量
1.11 练习题
基础题
在你的电脑上安装Python 3.12+,运行
python -c "import sys; print(sys.version)"验证安装。创建一个虚拟环境,安装requests库,编写脚本获取一个网页内容并输出状态码。
编写一个Python脚本,使用f-string输出你的姓名、年龄和爱好,要求包含类型注解。
进阶题
使用Poetry创建一个完整的项目结构,添加flask和pytest依赖,编写一个简单的"Hello World" Web应用。
配置VS Code的Python开发环境,安装Ruff扩展,确保保存时自动格式化和检查。
使用
dis模块查看一个简单函数的字节码,理解Python的编译执行过程。
项目实践
- 环境搭建项目:搭建一个完整的Python开发环境,包括:
- Python 3.12+安装
- VS Code配置(含Ruff、mypy)
- Git配置(含pre-commit钩子)
- Poetry项目管理
- 编写一个包含类型注解、文档字符串、单元测试的示例模块
思考题
Python的解释执行模型相比编译执行有什么优势和劣势?在什么场景下这些差异最为显著?
GIL对Python多线程编程的影响是什么?Python 3.13的自由线程模式如何解决这一问题?它带来了哪些新的挑战?
为什么PEP 8规范在Python社区如此重要?强制代码风格是否限制了编程自由?请从软件工程的角度分析。
1.12 延伸阅读
1.12.1 Python官方资源
- Python官方文档 (https://docs.python.org/3/) — Python权威参考
- Python教程 (https://docs.python.org/3/tutorial/) — 官方入门教程
- Python标准库 (https://docs.python.org/3/library/) — 标准库参考
- PEP索引 (https://peps.python.org/) — Python增强提案
1.12.2 语言设计与历史
- 《The Zen of Python》 (PEP 20) — Python设计哲学
- 《Python Language Specification》 — 语言规范文档
- Python历史 (https://www.python.org/doc/essays/foreword/) — Guido van Rossum的回忆
- PEP 703 (https://peps.python.org/pep-0703/) — 自由线程CPython设计
1.12.3 进阶书籍
- 《Fluent Python》 (Luciano Ramalho) — Python进阶经典
- 《Python Cookbook》 (David Beazley) — 实用技巧合集
- 《Effective Python》 (Brett Slatkin) — 最佳实践指南
- 《Python Distilled》 (David Beazley) — 语言精髓
1.12.4 开发工具
- VS Code Python扩展 (https://code.visualstudio.com/docs/python) — VS Code配置
- PyCharm文档 (https://www.jetbrains.com/help/pycharm/) — PyCharm指南
- Ruff文档 (https://docs.astral.sh/ruff/) — 现代Linter
- Poetry文档 (https://python-poetry.org/docs/) — 依赖管理
下一章:第2章 基础语法