Курс 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. Генерация QR-кодов с Python
  2. Применение функции map() в Python
  3. Измерение времени выполнения кода в Python
  4. Транспонирование 2D-массива с помощью zip
  5. Создание списка через цикл
  6. Анонимные функции в Python
  7. Разность множеств
  8. Проверка файла .py на синтаксис.
  9. Получение имени функции с помощью inspect
  10. Операции со строками в Python
  11. Резервирование символов в Python
  12. Python groupby() из itertools: работа с повторяющимися элементами
  13. Работа с CSV в Python
  14. Работа с комбинациями в Python.
  15. Навыки Python: строки, типы данных
  16. Работа с изображениями Pillow
  17. Деление в Python
  18. Работа с срезами в Numpy
  19. Создание словаря через dict comprehension
  20. Создание объекта времени
  21. Создание задания в Cron
  22. Распаковка значений в Python
  23. Декораторы с @wraps
  24. CLI-инструмент howdoi
  25. Контекстный менеджер в Python
  26. Хранение переменных в словаре.
  27. Функция format() в Python
  28. Очистка входных данных
  29. Метод setdefault() в Python
  30. Сортировка с помощью параметра key
  31. Конструктор в Python
  32. Управление контекстом выполнения
  33. Тернарный оператор в Python
  34. Операции с матрицами в Python
  35. Объединение списков в Python
  36. lru_cache оптимизация функций
  37. Копирование объектов в Python
  38. Делегирование в Python
  39. Переменные в Python: сокращение гласных
  40. Реализация метода __abs__ в Python
  41. Python: динамическая типизация и проверка типов
  42. Получение списка кортежей из словаря
  43. Метод rrshift для пользовательских объектов
  44. Мониторинг работы программы Py-spy
  45. Значения по умолчанию в Python
  46. Работа с файлами в Python

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