Курс 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. Функция reduce() из модуля functools
  2. Оператор is в Python
  3. Импорт объектов из модулей
  4. Переопределение метода __pow__
  5. Перемещение и удаление файлов в Python
  6. Хеширование паролей с солью
  7. Особенности ключей словаря в Python
  8. Объединение списков в строку
  9. Проверка кортежей.
  10. Работа с deque из collections
  11. Исключение NotImplementedError
  12. Метод join() с набором
  13. Модуль itertools: эффективная работа с итераторами
  14. Структурирование именованных констант
  15. Многопроцессорное программирование в Python
  16. Итерация по итерируемым объектам
  17. Импорт модулей в Python 3.12
  18. Python Translator: создание локальных переводчиков
  19. Игра «Угадывание чисел»
  20. Конвертация изображений в PDF
  21. Определение основы слова с showballstemmer
  22. Подсчет элементов в Python
  23. Именованные срезы в Python
  24. Библиотека schedule: планировщик задач
  25. Замыкания в Python
  26. Функция zip() в Python
  27. Функция divmod() в Python
  28. Списки в Python: синтаксис представления
  29. Работа с контекстными менеджерами
  30. Подсчет элементов в Python
  31. Поиск уникальных элементов строкой в Python
  32. Подсчет вхождений элементов
  33. Замена символов в Python
  34. Возврат значений из генератора
  35. Печать календаря
  36. Python 3.12: Псевдонимы типов
  37. Команда %dhist — список посещенных каталогов
  38. Строки в Python: апострофы и кавычки
  39. Использование super() в Python
  40. Создание генераторов в Python
  41. Функция enumerate в Python
  42. Решатель судоку на Python с pygame
  43. Создание обратного итератора
  44. Установка и использование модуля Wikipedia
  45. Работа с аргументами командной строки
  46. Тернарный оператор в Python

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