当前位置: 首页 > 面试题库 >

在python中对自定义类执行设置操作

麹耘豪
2023-03-14
问题内容

我想将Python的内置set类与我创建的自定义类一起使用。如果要创建包含自定义类实例的集合,我需要实现哪些功能以便执行测试,例如set_a-set_b?


问题答案:

它将开箱的,但是,可能有情况下,如果是有意义的过载__eq____ne____hash__。默认情况下,__eq__将比较对象的身份。这可能不是您想要的。在这种情况下,您必须注意相等的对象具有相同的哈希值,理想情况下,不相等的对象具有不同的哈希值(尽管这不是必需的,但这只是减少了冲突)。除非有特殊原因,否则应始终__ne__使用using__eq__来实现(这样做是为了确保逻辑一致性)。

另外,在重载时__hash__,您必须注意,将对象存储在中时,哈希值不会更改set



 类似资料:
  • 问题内容: 首先,我要说的不是关于渲染表格单元。 这是我基于数据库中的对象使用2D数组构建的TableModel 。 我的问题是如何使用表中的选定行取回对象。请注意,我无法创建新对象并用行数据填充它。我必须获取查询的对象(中的对象)。那么,他们用表行设置Object的任何方法吗? 这是我的课。 问题答案: 无需在创建模型之前拆分对象,而是将其直接添加到模型中并允许模型为您完成工作… 例如 这样,您

  • 问题内容: 我在Windows上工作。我想每10秒执行一次函数foo()。 我该怎么做呢? 问题答案: 在的末尾,创建一个在10秒后Timer调用自身的。 因为,Timer创建一个新的thread要调用。 你可以做其他事情而不会被阻止。

  • 但不走运,未设置自定义运行时类路径。

  • 在Java中,定义了与人们想要如何看待事物相关的事物(比如货币格式、月份名称以及一周开始的时间)。 解析月份名称时(使用)会变得很棘手。 如果使用或Sep的缩写形式是九月。 如果使用Sep在Java11中也有缩写形式。。。但是,当您尝试Java 17时,它有(因为Unicode CLDR端的更改,我问这是否正确)。 结果是,我的测试在尝试使用Java 17构建时开始失败。 我当前代码使用而不是

  • 我试图在PySpark中运行一个自定义的HDFS阅读器类。这个类是用Java编写的,我需要从PySpark访问它,可以从shell访问,也可以使用spark-submit访问。 有人能帮忙吗?谢了。