Một số lỗi phổ biến:
- Scope name lookups (LEGB): Python tìm tên theo thứ tự Local → Enclosing → Global → Built-in. Vì không có strict type binding, programmer có thể vô tình gán lại biến outer scope.
- Nhầm
isvà==:iskiểm tra cùng địa chỉ bộ nhớ,==gọi__eq__so sánh giá trị. - Sửa list khi đang iterate: Xóa phần tử trong list khi đang lặp gây
IndexErrordo size giảm mà index không giảm theo. - Closure binding:
listLambdas = [lambda x: i + x for i in range(5)] for lam in listLambdas: print(lam(10))Kết quả:14 14 14 14 14(tất cả tham chiếu cùng biếni, cuối cùng là 4). Sửa bằng default argument:lambda x, i=i: i + x. - Trùng tên built-in: Đặt tên biến
sum,list... che khuất built-in function. - Operator overload phi trực giác: Overload operator theo cách không phổ biến tạo API khó hiểu.