Курс 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. Создание OrderedDict
  3. Метод __index__ в Python
  4. Генерация строк с .join()
  5. Оператор break в Python
  6. Python OrderedDict и fromkeys() — работа с словарями
  7. Генерация UUID в Python
  8. Форматирование строк в Python
  9. Получение комбинаций в Python
  10. Генераторы в Python
  11. Преобразование списка в словарь через генератор
  12. Распаковка элементов массива
  13. Обработка исключений в Python
  14. Получение срезов итераторов
  15. Равенство и идентичность в Python
  16. Библиотека sh: удобные команды терминала
  17. Отслеживание прогресса с tqdm
  18. Форматирование данных с pprint
  19. Просмотр атрибутов и методов класса
  20. Операторы увеличения и уменьшения в Python
  21. Оператор «not» в Python
  22. Создание новых списков
  23. Docstring в Python
  24. Непрерывная проверка в Python
  25. Условные выражения в Python
  26. Проверка элемента в множестве.
  27. Множественное присваивание в Python
  28. Модуль Antigravity в Python 3
  29. Управление фоновыми задачами в Python
  30. Python itertools combinations() — группировка элементов
  31. Работа с датой и временем в Python
  32. Виртуальные среды в Python
  33. Подписка на @SelectelNews
  34. Работа с множествами в Python
  35. Работа с кортежами в Python
  36. Добавление элементов в список
  37. Получение размера объекта с sys.getsizeof()
  38. Конкатенация строк с помощью join()
  39. Метод title() в Python
  40. Оператор распаковки в Python
  41. Удаление элементов из списка в Python
  42. Функция zip() в Python
  43. Генераторы списков
  44. Метод join() для объединения элементов в строку.
  45. Порядок операций в Python

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