Курс 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. Особенности ключей словаря в Python
  2. Компиляция регулярных выражений
  3. Применение функции к списку
  4. Оператор «or» в Python
  5. Работа с многоуровневыми словарями в Python
  6. Функции высшего порядка в Python
  7. Python: возвращение нескольких значений
  8. Создание объекта времени
  9. Участие в сообществе @selectel
  10. Визуализация пропусков данных
  11. Функция findall() для поиска вхождений строки
  12. Обработка ошибок в Python
  13. Метод add для класса Vector
  14. Проектирование Singleton с метаклассом
  15. Обработка исключения UnboundLocalError
  16. Работа со списками
  17. Математические функции в Python
  18. Переменная Шредингера
  19. Разделение строки в Python
  20. Получение значений из словарей
  21. Повторение элементов в Python
  22. Метод join() для объединения элементов строки
  23. Измерение времени выполнения кода
  24. Модуль Operator в Python
  25. Функции min(), max(), sum()
  26. Группировка элементов Python
  27. Работа с множествами в Python
  28. Функция map() и ленивая оценка
  29. Поиск наиболее частого элемента в списке
  30. Работа с функцией next() в Python
  31. Тестирование модели в PyTorch
  32. Автоматизация скриптов на AWS Lightsail.
  33. Генераторы в Python
  34. Работа с геоданными с помощью geopy
  35. Вычисление разности множеств в Python
  36. Установка Git и AWS CLI
  37. Нарезка списков в Python
  38. Вывод переменной и строки в Python
  39. Тестирование времени с Freezegun
  40. Работа с массивами в Python
  41. Оценка точности модели
  42. Цикл for в Python
  43. Операции со строками в Python

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