Курс 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: nonlocal
  2. Фильтрация списка чисел
  3. Подписка на каналы разработчиков
  4. Изменяемые и неизменяемые объекты
  5. Объединение списков в Python
  6. Метод matmul для умножения матриц
  7. Подсказки при вводе данных в Python
  8. Сортировка в Python
  9. Переопределение оператора % для объектов
  10. Преобразование вложенного списка
  11. Работа с YAML в Python: PyYAML.
  12. Нахождение отличий в списках
  13. Подсчет элементов с помощью Counter
  14. Различия символов в Python
  15. Генераторные функции в Python
  16. Ускоренный импорт библиотек
  17. Декораторы в Python
  18. Метод title() в Python
  19. Преобразование числа в восьмеричную строку
  20. Библиотека funcy: удобные утилиты
  21. Расчет времени выполнения
  22. Область видимости переменных в Python
  23. Работа с комплексными числами
  24. Оформление кода по PEP 8
  25. Метод __iand__ для пользовательских классов
  26. Отправка HTTP-запросов с User-Agent
  27. Функция enumerate() в Python
  28. Рациональные числа в Python
  29. Вставка переменных в шаблоны Flask
  30. Измерение времени выполнения кода
  31. Создание итератора
  32. Навыки Python: строки, типы данных
  33. Константы в модуле cmath
  34. Итераторы с потерямиZIP
  35. Анонимные функции Lambda
  36. Группировка элементов Python
  37. Разработка Telegram-ботов
  38. Замеры производительности в Python
  39. Закрытие файла в Python
  40. Списки в Python
  41. Очистка списка от False, None, 0, «»
  42. Сортировка данных в Python
  43. Передача неизвестных аргументов в Python.
  44. Декораторы в Python
  45. Генераторы в Python

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