Курс 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. Область видимости переменных
  2. Переопределение метода __pow__
  3. Объединение кортежей в Python
  4. Поиск простых чисел
  5. Множественное назначение в Python
  6. Работа с временем в Python
  7. Поток данных в Python
  8. Установка и использование Virtualenv
  9. Разделение строки с помощью split()
  10. Метод rsub для пользовательских чисел
  11. Проверка версии Python
  12. Особенности множеств в Python
  13. Работа с аргументами командной строки в Python
  14. Метод difference_update() — разность множеств
  15. Работа с *args и **kwargs в Python
  16. Список и кортеж в Python
  17. Виртуальные среды в Python
  18. Генераторы в Python
  19. Проверка дублей в списке.
  20. Метод invert для побитового отрицания
  21. Перевод двоичного кода в целое число
  22. Подсчет частоты элементов с Counter
  23. Проверка элемента в множестве.
  24. Объединение списков в Python
  25. Библиотека sh: удобные команды терминала
  26. Управление доступом к модулю
  27. Глобальные переменные в Python
  28. Метод enumerate() в Python
  29. Функции в одну строку
  30. Сортировка и обратный порядок
  31. Defaultdict в Python
  32. Проверка списка: any() и all()
  33. Счетчик в Python: most_common()
  34. Хешируемые ключи в Python
  35. Python: изменяемые и неизменяемые коллекции
  36. Форматирование строк с помощью f-строк
  37. Управление User-Agent в Python
  38. Обработка элементов в Python
  39. Генератор надежных паролей
  40. Работа с множествами в Python
  41. Принципы Zen of Python
  42. Работа с набором данных CIFAR10 в PyTorch
  43. Подсчет количества элементов в списке
  44. Замена текста с re.sub()
  45. Работа с буфером обмена на Python
  46. Обработка исключений в Python

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