Курс 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. enumerate() в Python для работы с индексами
  2. Цепные операции в Python
  3. Преобразование объекта в строку
  4. Метод setdefault() в Python
  5. Разделение строки с помощью split()
  6. Генератор бросков кубиков
  7. Дизассемблирование Python кода
  8. Замена атрибута в именованном кортеже
  9. Измерение времени выполнения с помощью time
  10. Сравнение объектов в Python
  11. Раздувающийся словарь в Python
  12. Namedtuple в Python
  13. Копирование объектов в Python
  14. Сортировка слиянием
  15. Импорт модулей в Python 3.12
  16. Работа с комбинациями в Python.
  17. split() — разделение строки
  18. Функции all и any в Python
  19. Пересечение списков с использованием множеств
  20. Подчеркивание в REPL
  21. Сортировка элементов в Python
  22. Перезагрузка оператора в Python
  23. Определение относительного пути
  24. Работа с SQLite в Python
  25. Работа с комплексными числами
  26. Работа с асинхронными задачами в Python
  27. Поиск с библиотекой Google
  28. Атрибуты массивов в Numpy
  29. Создание и использование ChainMap
  30. Функция reduce() из модуля functools
  31. Добавление элемента к кортежу
  32. Анализ кода — Python
  33. Установка Git и AWS CLI
  34. Замена текста с помощью sub
  35. Срезы в Python
  36. Наиболее частотные элементы с помощью Counter
  37. Работа со стеком в Python
  38. Декораторы в Python
  39. Основные методы NumPy
  40. Анализ текста на русском языке с помощью Pymystem3
  41. Синтаксис переменных цикла в Python
  42. Документация функции help() в Python
  43. Использование модуля __future__
  44. Python groupby() из itertools: работа с повторяющимися элементами
  45. Вывод сложных структур данных с помощью pprint
  46. Создание класса очереди
  47. Исправление ошибки NameError
  48. Конкатенация строк с join() в Python

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