Как я могу создать пользовательские __hash__ и __eq__ для экземпляров классов Python, которые имеют динамические диктанты - PullRequest
0 голосов
/ 12 сентября 2018

Отказ от ответственности: я не эксперт. Если решение для вас очевидно, это круто! Надеюсь, это когда-нибудь станет для меня очевидным.

Я создал класс Trigger () для запуска событий на основе одного или нескольких правил. У каждого экземпляра есть метод оценки соответствия правилам. Например, если существует только одно правило, «среда 0800-1400», и между этими моментами в настоящее время среда, то триггер возвращает значение «Истина».

Перекрывающиеся триггеры недопустимы (см. Пример ниже)

TriggerOne = { день: «понедельник», начало: "08:00", конец: "14:00" }

TriggerTwo = { день: «понедельник», начало: «12:00», Конец: "16:00" }

Чтобы проверить перекрывающиеся триггеры, я реализовал self. eq (), который возвращает True, если временные рамки или другие правила перекрываются между триггерами, и False, если правило (а) не перекрываются.

HELP! Я начал писать собственный класс для управления триггерами, но я надеялся, что может быть способ сделать мои экземпляры триггеров хэшируемыми на основе их правил, чтобы я мог добавить их в set ()

Я прочитал этот вопрос, для ответа в котором говорится, что эквивалентные экземпляры должны хешировать одно и то же: Создание пользовательского класса Python для сортировки, хеширования

Как я мог (если это возможно) заняться написанием себя. хэш (), который мог бы достичь этого?

Я очень ценю конструктивные отзывы и идеи

...