Курс 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. Получение ID процесса
  2. Извлечение аудио из видео
  3. Различия символов в Python
  4. Введение в Python
  5. Генерация случайных данных в NumPy
  6. Декоратор @override
  7. Подсчет элементов в списке с Counter
  8. Поиск наиболее частого элемента
  9. Работа с CSV в Python
  10. Lambda-функция в Python: использование с map() и sum()
  11. Константы в модуле cmath
  12. Порядок операций в Python
  13. Визуализация пропусков данных
  14. Numpy: разбиение массивов
  15. Работа с CSV файлами в Python
  16. Удаление символов новой строки в Python.
  17. Преобразование в float
  18. Получение списка файлов в директории с использованием os
  19. Ускорение выполнения кода в Python
  20. Функции map, filter и reduce
  21. Разделение строки с помощью split()
  22. Метод join() для объединения элементов строки
  23. Работа с набором данных CIFAR10 в PyTorch
  24. Выражения-генераторы в Python
  25. Курсы Яндекс Практикум
  26. Настройка шрифта и цвета в Tkinter
  27. Поиск индексов подстроки
  28. Транспонирование матрицы в Python
  29. Работа с байтовыми строками в Python
  30. Инверсия списка/строки в Python
  31. Преобразование генераторов в циклы
  32. Создание и инициализация объектов
  33. Основные методы NumPy
  34. Форматирование объектов с модулем pprint
  35. Инверсия списка и строки в Python
  36. Получение идентификатора объекта в памяти
  37. Оператор морж в Python 3.8
  38. Функция findall() для поиска вхождений строки
  39. Группы исключений в Python
  40. Работа с YAML в Python
  41. Прокачанный трейсинг ошибок
  42. Операции с комплексными числами
  43. Работа со словарями Python
  44. Измерение времени выполнения кода
  45. Создание даты из строки ISO
  46. Управление сессиями в Python

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