Курс 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. Оператор zip в Python
  2. Декораторы в Python
  3. Разделение строки в Python
  4. Работа с очередями в Python
  5. Непрерывная проверка в Python
  6. Получение имени функции с помощью inspect
  7. Определение локальных переменных в Python
  8. Разделение строки с помощью re.split()
  9. Работа с SQLite в Python
  10. Установка и обучение ChatterBot
  11. Статическая типизация в Python
  12. Работа со слайсами
  13. Методы shutil для работы с файлами
  14. Расчет времени выполнения
  15. Обратный список чисел
  16. Создание файла с проверкой ошибки
  17. Возвращение нескольких значений
  18. Установка и использование Logzero
  19. Исключение NotImplementedError
  20. Оптимизация строк в Python
  21. Создание словарей в Python
  22. Обработка исключений в Python
  23. Отправка POST-запроса в REST API
  24. Работа с collections в Python.
  25. Методы __repr__ и __str__ в Python
  26. Генераторы данных
  27. Список и кортеж в Python
  28. Создание объекта времени
  29. Обработка ошибок в JSON данных
  30. Преобразование вложенного списка
  31. Создание словарей с defaultdict()
  32. Создание GUI на Tkinter
  33. Упрощение условных выражений с тернарным оператором
  34. Документация функции help() в Python
  35. Основы слова
  36. Установка виртуального окружения Python
  37. Перевод эмодзи и эмотиконов.
  38. CSV строка разделение в Python
  39. Создание генераторов в Python
  40. Python 3.12: Псевдонимы типов
  41. Метод join() для объединения элементов строки
  42. Переопределение метода __and__
  43. Генератор списка в Python
  44. Методы и функции в Python
  45. Функции map, filter, reduce

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