Sobes.tech
Junior — Middle
108

Ҳаракати методологӣ, ки бояд ирсол шавад, то ки намунаи синф дар структураи додаҳои навъи луғат ҳамчун калиди қобили қабул гардад?

Ҷавоб аз AI

sobes.tech AI

Чтобы экземпляр класса стал допустимым ключом в словаре Python, он должен быть хешируемым. Для этого необходимо реализовать методы __hash__() и __eq__().

  • Метод __hash__() должен возвращать целочисленное значение, которое будет использоваться для быстрого поиска ключа.
  • Метод __eq__() должен определять логику сравнения объектов на равенство.

Важно, чтобы объекты, считающиеся равными (__eq__ возвращает True), имели одинаковый хеш (__hash__).

Пример:

class MyKey:
    def __init__(self, id):
        self.id = id

    def __eq__(self, other):
        if isinstance(other, MyKey):
            return self.id == other.id
        return False

    def __hash__(self):
        return hash(self.id)

# Использование
my_dict = {}
key = MyKey(10)
my_dict[key] = "value"
print(my_dict[MyKey(10)])  # Выведет "value"