Курс 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
  2. Отслеживание выполнения программы с библиотекой tqdm
  3. Метод matmul для умножения матриц
  4. Декораторы в Python
  5. Функция divmod() в Python
  6. Удаление ключа из словаря
  7. Работа с рекламными данными в Pandas
  8. Импорт классов из другого файла
  9. Работа с Colorama
  10. Метод is_absolute() для PurePath
  11. Логирование с Loguru
  12. Расчет времени выполнения программы
  13. Проверка переменных окружения в Python
  14. Очистка списка от False, None, 0, «»
  15. Визуализация пропусков данных
  16. Объединение словарей в Python
  17. Игра «Камень, ножницы, бумага» — Python
  18. Работа со строками в Python
  19. Получение значений из словарей
  20. Метод enumerate() в Python
  21. Работа с модулем bisect
  22. Добавление вложенных списков
  23. Создание функций с произвольным количеством аргументов
  24. Динамические маршруты во Flask
  25. Добавление элементов в список: append() vs extend()
  26. Использование super() в Python
  27. Инверсия списка и строки
  28. Объединение множеств в Python
  29. Проверка однородности элементов списка
  30. Python reversed() vs срез[::-1]
  31. Многострочные комментарии в Python
  32. Асинхронное выполнение задач в Python
  33. Преобразование данных в Python
  34. Протокол управления контекстом
  35. Сортировка HTML по CSS-селектору
  36. Подсчет элементов в Python
  37. Принципы Zen of Python
  38. Работа с многоуровневыми словарями в Python
  39. Объединение списков в Python.
  40. Получение имени функции с помощью inspect
  41. Работа с itertools
  42. Создание списка дат
  43. Замена текста с помощью sub
  44. Работа с NumPy массивами
  45. Создание словарей в Python

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