Курс Python → Метод hash в Python

Метод сравнения объектов между собой, представленный в инструкции, является важным аспектом программирования на языке Python. В ней рассматривается класс Person с атрибутами name и age, где переопределен метод hash для генерации уникального хэша на основе значений этих атрибутов. При создании объектов person1 и person3 с одинаковыми значениями атрибутов, они будут иметь одинаковый хэш, что показывает, как работает метод hash.

Этот лайфхак полезен при работе с типами данных, которые используют хэширование для быстрого доступа, такими как словари или множества. Правильная реализация метода hash позволяет использовать объекты вашего класса как ключи в словарях или элементы в множествах. Это обеспечивает эффективность и уникальность при доступе к данным, что является важным аспектом при разработке программ на Python.


class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def __hash__(self):
        return hash((self.name, self.age))

person1 = Person("Alice", 30)
person2 = Person("Bob", 25)

print(hash(person1))  # Выведет уникальный хэш для объекта person1
print(hash(person2))  # Выведет уникальный хэш для объекта person2

В приведенном выше примере кода мы видим класс Person с переопределенным методом hash, который генерирует уникальный хэш на основе значений атрибутов name и age. При вызове функции hash для объектов person1 и person2, мы получаем уникальные хэши, что демонстрирует правильную работу метода сравнения объектов между собой на основе их хэшей.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Методы shutil для работы с файлами
  2. Работа с deque из collections
  3. Обновление данных через PUT запрос
  4. Работа с множествами в Python
  5. Подсчет элементов с помощью Counter
  6. Форматирование строк с % в Python
  7. Фильтрация входных данных в Python
  8. Переопределение метода __pow__
  9. Python: цикл for и оператор присваивания
  10. Структурирование именованных констант
  11. Преобразование чисел в восьмеричную строку
  12. Игра «Камень, ножницы, бумага» — Python
  13. Переопределение метода __or__()
  14. Метод init в Python
  15. Работа с путями в Python
  16. Хранение переменных в Python.
  17. Форматирование строк с помощью f-строк
  18. Нахождение разницы между списками в Python
  19. Работа с изображениями Pillow
  20. Создание словарей и множеств в Python.
  21. Создание списка дат
  22. Сериализация и десериализация объектов
  23. Перехват исключений в Python
  24. Python itertools combinations() — группировка элементов
  25. Передача параметров в Python
  26. Передача словаря через **kwargs
  27. Преобразование данных в Python
  28. Работа с контекстными переменными
  29. Возврат нескольких значений из функции
  30. Создание графиков в терминале
  31. Оператор del в Python
  32. Flask — веб-фреймворк Python
  33. Использование html-скриптов в Jupyter Notebook
  34. Приближение чисел в Python
  35. Объединение списков в Python.
  36. Поиск простых чисел
  37. Проверка списка: any() и all()
  38. Удаление дубликатов из списка с помощью dict.fromkeys
  39. Подсказки при вводе данных в Python
  40. Ускорение обработки данных с %autoawait
  41. Отправка POST-запроса в REST API
  42. Поиск уникальных элементов строкой в Python
  43. Работа с геоданными с помощью geopy
  44. Метод __complex__ в Python
  45. Оператор обр. импликации

Marketello читают маркетологи из крутых компаний