TypeError: unhashable typeTypeError: unhashable type
Một đối tượng mutable được dùng ở nơi yêu cầu đối tượng hashable (immutable), chẳng hạn làm khóa dictionary hoặc phần tử set.
Nguyên nhân gây ra lỗi này
Bạn cố dùng list, dict, set, hoặc đối tượng mutable khác làm khóa dictionary hoặc phần tử set. Chỉ các đối tượng hashable (immutable) mới có thể làm khóa: string, số, tuple (của các phần tử hashable), frozenset.
Cách sửa
Chuyển list thành tuple: tuple(my_list). Chuyển set thành frozenset: frozenset(my_set). Với dict, dùng frozenset của các item hoặc chuyển thành dạng hashable. Dùng cấu trúc dữ liệu immutable làm khóa.
Ví dụ
{[1, 2]: "value"} # TypeError: unhashable type: 'list'Mã lỗi liên quan
FloatingPointErrorFloatingPointError
Thao tác dấu phẩy động thất bại. Hiếm gặp trừ khi fpectl được bật.
IndexErrorIndexError: list index out of range
Chỉ số truy cập vào chuỗi vượt ngoài phạm vi hợp lệ của chuỗi đó.
AttributeErrorAttributeError
Đối tượng không có thuộc tính hoặc phương thức được yêu cầu.
ProcessLookupErrorProcessLookupError — Tra cứu tiến trình thất bại
Được ném ra khi tiến trình được chỉ định (thường là một PID) không tồn tại.
RecursionErrorRecursionError
Đã vượt quá giới hạn độ sâu đệ quy tối đa.
NotImplementedErrorNotImplementedError
Một phương thức cần được implement bởi lớp con nhưng chưa được triển khai.