Хешированные объекты
Хешированные объекты - ключевые объекты при работе со словарями (dict) и множествами (set)
class Person:
def hello(self, name):
self._name = name
@property
def name(self):
return self._name
# позволит работать с хешированными объектами
def _hash_(self):
return hash(self.name)
def _eq_(self, person_obj):
return isinstance(person_obj, Person) and self.name == person_obj.name
p1 = Person("Ivan")
p2 = Person("Ivan")
# это позволит передавать объекты в качестве ключей словаря
d = {p1: "Roman Romanoff"}
d.get(p1)
# Roman Romanoff
123456789101112131415161718192021222324
Last updated
Was this helpful?