Курс 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. Декоратор Ajax required
  2. Переворот строки
  3. Инициализация объекта
  4. Преобразование многоуровневого словаря
  5. Метод setitem в Python
  6. Настройка логгера Logzero
  7. Python defaultdict добавление ключа
  8. globals и locals
  9. Оператор break в Python
  10. Декораторы в Python
  11. Установка и использование Telegram API в Python
  12. Замеры производительности в Python
  13. Определение наиболее частого элемента с помощью collections.Counter
  14. Скачать видео с YouTube
  15. Декораторы в Python
  16. Уникальность ключей в словаре
  17. Метод ifloordiv для пользовательских классов
  18. Работа с кортежами в Python
  19. Многострочные строки в Python
  20. Создание объекта timedelta
  21. Работа с временем в Python
  22. F-строки в Python 3.8
  23. Создание лямбда-функций
  24. Работа с географическими данными в Python
  25. UserString в Python
  26. Модуль math: константы π и e
  27. Управление контекстом выполнения кода
  28. Создание уникального проекта
  29. Python: Splat-оператор и splatty-splat
  30. Вызов внешних программ в Python с помощью sh
  31. Принципы SRP и OCP
  32. Роль запятой в Python
  33. Генераторы в Python
  34. Использование функции enumerate()
  35. Создание детектора плагиата
  36. Декоратор Ajax required
  37. Профилирование данных с Pandas
  38. Искажение имен в Python
  39. Работа с кортежами в Python
  40. Генерация тестовых данных с factory_boy
  41. Основные операции с библиотекой Numpy
  42. split() без разделителя
  43. Возврат нескольких значений
  44. Структурирование данных с Pydantic
  45. Работа со списками
  46. Solidity для DeFi Ethereum
  47. Извлечение новостей с newspaper3k

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