Курс 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. Показ всплывающих окон Tkinter
  2. Анализ текста на русском языке с помощью Pymystem3
  3. Добавление элемента к кортежу
  4. Множественное назначение в Python
  5. Управление сессиями в Python
  6. Применение функции к списку
  7. Поиск подстроки в строке
  8. Профилирование кода на Python
  9. Импорт с альтернативным именем
  10. Лимиты на ресурсы Python
  11. Улучшенные подсказки для импорта в Python 3.12
  12. Методы split() и join() — Python строк.
  13. Структура строк в Python
  14. Метод Self в Python
  15. Применение функции к списку
  16. Основные функции и модули Python
  17. Оператор морж в Python 3.8
  18. Работа с часовыми поясами в Python
  19. Определение индекса элемента списка
  20. Многострочные строки в Python
  21. Работа с библиотекой requests
  22. Преобразование объекта в строку
  23. Управление ресурсами в Python
  24. Оптимизация памяти с slots
  25. Оператор обр. импликации
  26. Методы __repr__ и __str__ в Python
  27. Использование html-скриптов в Jupyter Notebook
  28. Оператор += для объединения строк
  29. Виртуальное окружение Python
  30. Поиск индекса элемента
  31. Синхронизация потоков с time.sleep()
  32. Методы HTTP запросов в Flask
  33. Сортировка слиянием
  34. Обход дочерних элементов BeautifulSoup
  35. Округление в Python
  36. Проверка подстроки в строке с помощью in
  37. Работа с *args и **kwargs в Python
  38. Работа со временем в Python
  39. capitalize() — изменение регистра первого символа строки
  40. Создание списков в Python
  41. Измерение времени выполнения
  42. Модуль inspect
  43. Глобальные переменные в Python

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