Python Expert 是一份供 AI 在执行过程中读取的参考,围绕 Python 常见陷阱与选型决策,主要面向需要快速判断方案的执行场景。
用途:帮助在写 Python 代码时避开已知坑,并依据用途选择框架、校验工具与 ORM。涉及 FastAPI/Django/Flask 文档时建议使用 Context7。
主要决策:FastAPI 适合异步 API 加自动文档;Django 功能完整,含 ORM 与管理后台;Flask 偏轻量微型。Pydantic 用于 API 边界的校验与序列化,dataclass 用于内部结构。SQLAlchemy 适合独立项目或 FastAPI,Django ORM 仅用于 Django 项目。I/O 密集用异步,CPU 密集用同步,异步中不要混入阻塞调用。
常见陷阱:可变默认参数会在调用间共享,应改用 None 再赋值;asyncio.run() 会新建事件循环、不能嵌套,已有异步上下文里用 await;FastAPI 的 Depends() 默认每请求新实例,单例可用 @lru_cache;Django 的 N+1 用 select_related 处理外键/一对一、prefetch_related 处理多对多/反向外键;isinstance(x, int) 也会匹配 bool,因 bool 是 int 子类,必要时用 type(x) is int;类型注解不在运行时强制,需 Pydantic 或 beartype 做运行时校验;dict.get 缺键会静默返回 None,键必须存在时用下标访问;现代项目优先 pyproject.toml(PEP 621)而非 requirements.txt;文件与数据库连接用 with 做资源清理,不要依赖 del。
限制:资料未提供安装命令、收费、平台与版本支持等信息,部分内容依赖上下文解读,使用前应自行核对。