GUIDE深度 · Deep dive
Python 常见坑
Python 很多 bug 来自“看起来对”。可变默认参数、列表浅拷贝、is 与 ==、整除和浮点误差是高频坑;先预测输出,再运行验证。
四个高频坑
def f(x=[]):默认列表只创建一次。
y = x 不是拷贝,改 y 会影响 x。
is 比较身份,== 比较值。
0.1 + 0.2 != 0.3(浮点误差)。
怎么避免
默认参数用 None,再在函数内建列表。
需要独立列表用 copy()/切片/深拷贝。
常见问题
为什么 0.1+0.2 不是 0.3?
二进制浮点无法精确表示 0.1;比较用 math.isclose。
is 什么时候用?
和 None/True/False 比较,或确实要比较同一对象。