Hướng dẫn what does __ hash __ do in python? - __ băm __ làm gì trong python?
Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu về hàm băm python () và cách ghi đè phương thức 3 method in a custom class. Giới thiệu về hàm băm PythonHãy bắt đầu với một ví dụ đơn giản. Đầu tiên, xác định lớp 4 với các thuộc tính 5 và 6:
Thứ hai, tạo hai trường hợp của lớp 4:
Thứ ba, hiển thị các băm của các đối tượng 8 và 9:
Output:
Hàm 0 chấp nhận một đối tượng và trả về giá trị băm dưới dạng số nguyên. Khi bạn chuyển một đối tượng cho hàm 0, Python sẽ thực thi phương thức đặc biệt 3 của đối tượng. Điều đó có nghĩa là khi bạn chuyển đối tượng 8 cho hàm 0:
Python sẽ gọi phương thức 3 của đối tượng 8:
Theo mặc định, 3 sử dụng danh tính đối tượng và 8 trả về 9 nếu hai đối tượng giống nhau. Để ghi đè hành vi mặc định này, bạn có thể thực hiện 8 và 3. Nếu một lớp ghi đè phương thức 8, các đối tượng của lớp trở nên không thể chối cãi. Điều này có nghĩa là bạn đã giành chiến thắng có thể sử dụng các đối tượng trong một loại ánh xạ. Ví dụ: bạn sẽ không thể sử dụng chúng làm khóa trong từ điển hoặc các phần tử trong một bộ. Lớp 4 sau đây thực hiện phương thức 8:
Nếu bạn cố gắng sử dụng đối tượng 4 trong một tập hợp, bạn sẽ gặp lỗi. Ví dụ:
Python có lỗi sau:
Ngoài ra, đối tượng của người bị mất băm vì nếu bạn thực hiện 8, 3 sẽ được đặt thành 8. Ví dụ:
Error:
Để tạo ra lớp 4 có thể băm, bạn cũng cần thực hiện phương thức 3: 1 Bây giờ, bạn có lớp 4 hỗ trợ bình đẳng dựa trên 6 và có thể băm. Để làm cho 4 hoạt động tốt trong các cấu trúc dữ liệu như từ điển, hàm băm của lớp nên vẫn còn bất biến. Để làm điều đó, bạn có thể tạo thuộc tính 6 của thuộc tính 4 loại chỉ đọc: 2 Bản tóm tắt
Bạn có thấy hướng dẫn này hữu ích không? Có nghĩa là gì có thể băm?Vì vậy, Hashable là một tính năng của các đối tượng Python cho biết liệu đối tượng có giá trị băm hay không. Nếu đối tượng có giá trị băm thì nó có thể được sử dụng làm khóa cho từ điển hoặc làm phần tử trong một tập hợp. Một đối tượng có thể băm nếu nó có giá trị băm không thay đổi trong toàn bộ cuộc sống của nó.a feature of Python objects that tells if the object has a hash value or not. If the object has a hash value then it can be used as a key for a dictionary or as an element in a set. An object is hashable if it has a hash value that does not change during its entire lifetime.
Phương thức __ eq __ trong Python là gì?Bản tóm tắt. Thực hiện phương thức Python __eq__ để xác định logic bình đẳng để so sánh hai đối tượng bằng toán tử bằng nhau (==)define the equality logic for comparing two objects using the equal operator ( == )
Bảng băm trong Python là gì?Một bảng băm trong Python sử dụng một mảng làm phương tiện lưu trữ và sử dụng phương pháp băm để tạo một chỉ mục trong đó một phần tử sẽ được tìm kiếm từ hoặc cần được chèn.Nói cách khác, bảng băm trong Python là cấu trúc dữ liệu lưu trữ dữ liệu bằng cách sử dụng một cặp giá trị và khóa.a data structure which stores data by using a pair of values and keys.
Chức năng băm có nghĩa là gì?Hàm băm là bất kỳ hàm nào có thể được sử dụng để ánh xạ dữ liệu có kích thước tùy ý đến các giá trị kích thước cố định.Các giá trị được trả về bởi hàm băm được gọi là giá trị băm, mã băm, tiêu hóa hoặc băm đơn giản.Các giá trị thường được sử dụng để lập chỉ mục một bảng kích thước cố định được gọi là bảng băm.any function that can be used to map data of arbitrary size to fixed-size values. The values returned by a hash function are called hash values, hash codes, digests, or simply hashes. The values are usually used to index a fixed-size table called a hash table. |