Курс 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. Замена атрибута в именованном кортеже
  3. Методы сравнения множеств
  4. Цикл for с enumerate() в Python
  5. Создание новой даты в Python
  6. Логирование с Loguru
  7. Разделение функций на этапы
  8. Группы исключений в Python
  9. Оператор @ для умножения матриц
  10. Метод remove() для удаления элемента из списка
  11. Python: изменяемые и неизменяемые коллекции
  12. Списковые включения в Python
  13. Работа с JSON в Python
  14. Оператор «and» в Python
  15. Разделение строк методом split()
  16. Работа с базами данных SQLite
  17. Зарезервированные слова в Python
  18. Создание словарей с defaultdict()
  19. Генерация случайных данных в NumPy
  20. Резервирование символов в Python
  21. Сортировка слиянием
  22. Получение списка кортежей из словаря
  23. Работа с NumPy
  24. Создание списка через итерацию
  25. Настройка шрифта и цвета в Tkinter
  26. Flask: создание веб-приложений
  27. Работа с байтовыми строками в Python
  28. Глобальные переменные в Python
  29. Проверка кортежей.
  30. Установка User-Agent в Python
  31. Оптимизация памяти с __slots__
  32. Уникальные значения из списка
  33. Работа с CSV файлами
  34. Разделение строки с помощью re.split()
  35. Функция reduce() в Python
  36. Исключение NotImplementedError
  37. Работа со случайными элементами
  38. Функциональное программирование.
  39. Тестирование с responses
  40. Создание новых списков в Python
  41. Получение текущей даты и времени
  42. Модуль inspect

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