@become_iron

Как лучше создать dict-like класс с составным ключом?

Задача в следующем:
1) имеется класс, имеющий 4 свойства, 2 из которых "только для чтения"
2) нужно создать второй класс (в каком-то роде dict-like), состоящий из последовательности экземпляров первого класса и в котором должен использоваться составной ключ из вышеупомянутых двух readonly-свойств
Как сделать это лучше?
Надеюсь, объяснил более или менее понятно

Пробовал сделать, реализовав для первого класса методы __eq__ и __hash__, а во втором хранил экземпляры первого класса во множестве. Примерно так: gist. Но мне не особо это нравится: создание множества, конечно, происходит по "составному ключу", но получить значение по этому ключу нельзя
Смотрел библиотеку collections, но тоже не высмотрел подходящее
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
@become_iron Автор вопроса
Решено было примерно так:

class Trp:
    def __init__(self, prefix, name, value, comment):
        self.prefix = prefix  # readonly
        self.name = name  # readonly
        self.value = value
        self.comment = comment

class TrpStr:
    def __init__(self, *trps):
        self._trps = {}
        for trp in trps:
            self._trps.update({(trp.prefix, trp.name): trp})


Решение, конечно, не идеальное
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы