Хешированные объекты

Хешированные объекты - ключевые объекты при работе со словарями (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