Skip to content

💡 实战经验

虚拟环境不是可选的

项目 A 需要 requests 2.28,项目 B 需要 2.31——不用虚拟环境就会互相打架。每个项目一个虚拟环境,没有例外。现在有 uv 这种工具,创建环境只要 1 秒,没有理由不用。

requirements.txt 不要手写

手写 requests==2.31.0 然后发现它依赖的 urllib3 版本跟你另一个库冲突。用 pip freeze > requirements.txt 或者更好的方式——用 uv / poetry 管理依赖,自动解决版本冲突。

别在生产环境用 print 调试

print(f"DEBUG: {data}") 留在生产代码里被客户看到很尴尬,而且性能比 logging 差。从第一天就用 logging 模块,配置级别就够了。logging 支持文件轮转、多模块、远程发送,print 什么都不能。

别信任浮点数

0.1 + 0.2 == 0.3 返回 False——这是 IEEE 754 标准的问题,不是 Python 的 bug。涉及金额计算用 decimal.Decimal,不用 float

列表推导不是万能的

一行列表推导写了 3 个嵌套循环 + 2 个条件判断——代码能跑,但三个月后你自己都看不懂。超过一个循环的推导就该用 for 循环,可读性 > 酷炫。