如何为具有动态字典的 python 类实例创建自定义__hash__和__eq__

How can I create a custom __hash__ and __eq__ for python class instances who have dynamic dicts

提问人:Phil S 提问时间:9/13/2018 最后编辑:Phil S 更新时间:9/13/2018 访问量:96

问:

免责声明:我不是专家。如果解决方案对你来说是显而易见的,那就太棒了!希望有一天它也会对我产生影响。

我创建了一个类 Trigger(),用于根据一个或多个规则触发事件。 每个实例都有一个方法来评估当前是否满足规则。 例如,如果只有一个规则“星期三 0800-1400”,并且当前是这两个时间之间的星期三,则触发器将返回 True。

不允许重叠触发器(请参阅以下示例)

触发器一 = { day: “星期一”, 开始:“08:00”, 结束:“14:00” }

触发器二 = { day: “星期一”, 开始:“12:00”, 结束:“16:00” }

为了测试重叠的触发器,我实现了一个自我。eq(),如果触发器之间的时间范围或其他规则重叠,则返回 True,如果规则不重叠,则返回 False。

帮助!我开始编写一个自定义类来管理触发器,但我希望有一种方法可以使我的触发器实例根据其规则进行哈希处理,以便我可以将它们添加到 set() 中

我读了这个问题,答案指出等效实例应该散列到同样的事情:使 python 用户定义的类可排序、可散列

我怎么能(如果可能的话)去写一个自我。hash() 可以做到这一点吗?

我非常感谢建设性的反馈和想法

Python 哈希 相等

评论

0赞 user2357112 9/13/2018
重叠不是相等,甚至不是等价关系。套装不是作业的工具。
0赞 wim 9/13/2018
使用 stdlib 集不是解决此问题的好方法。建议自己写类。

答: 暂无答案