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

我应该在Python中实现__ne__作为__eq__的否定吗?

邴墨竹
2023-03-14
问题内容

我有一个我想覆盖该__eq__方法的类。我也应该重写该__ne__方法似乎很有意义。我应该这样__ne__否定实施,__eq__还是一个坏主意?

class A:

    def __init__(self, state):
        self.state = state

    def __eq__(self, other):
        return self.state == other.state

    def __ne__(self, other):
        return not self.__eq__(other)

问题答案:

是的,那很好。实际上,文档敦促您在定义__ne__时定义__eq__

比较运算符之间没有隐含的关系。的真相x==y并不意味着那x!=y 是错误的。因此,在定义时
__eq__(),还应该定义一个,__ne__()以便操作符能够按预期运行。

在很多情况下(例如这种情况),它__eq__与否的结果一样简单,但并不总是如此。



 类似资料:
  • 问题内容: 我有一个我想覆盖该方法的类。我也应该重写该方法似乎很有意义。我应该这样否定实施,还是一个坏主意? 问题答案: 是的,那很好。实际上,文档敦促您在定义时定义: 比较运算符之间没有隐含的关系。的真相x==y并不意味着那x!=y 是错误的。因此,在定义时 ,还应该定义一个,以便操作符能够按预期运行。 在很多情况下(例如这种情况),它与否的结果一样简单,但并不总是如此。

  • 问题内容: 这里的答案为需要返回除的逻辑倒数以外的内容的情况提供了有用的参考,但是我无法想象有任何这种情况。有什么例子吗? 问题答案: SQLAlchemy是一个很好的例子。对于未启动的用户,SQLAlchemy是一个ORM,并使用Python表达式生成SQL语句。在诸如 在不返回一个布尔值,但最终能产生像SQL查询的对象。倒数会产生类似的结果,因此需要定义两种方法。

  • 问题内容: 在界面中添加Javadoc注释并在实现中添加非Javadoc注释是否正确? 当您自动生成注释时,大多数IDE都会为实现生成非JavaDoc注释。具体方法不应该有描述吗? 问题答案: 对于仅实现(不是覆盖)的方法,请确定为什么不这样做,尤其是如果它们是公共的。 如果您处于压倒一切的情况,并且打算复制任何文本,那么绝对不能。复制是导致差异的必经之路。结果,用户将基于检查父类型还是子类型中的

  • 我正在使用Spring mvc和hibernate实现一个企业应用程序。应用程序体系结构由以下层组成: 查看 控制器 服务 域 Peristence公司 数据访问是使用经典的 dao 模式实现的,并允许 CRUD 操作泛型查询。我应该在哪里实现特定查询?我想有两种解决方案: 通过创建Hibernate条件并将其传递给持久层来实现服务层中的特定查询 通过为每个查询创建一个函数并调用服务层中的函数来实

  • 我正在用Python和tkinter开发一个程序,从用户从他们的目录中添加一个文本文件开始。我已经建立了一个图形用户界面与tkinter提供了一个按钮被按下和一个弹出窗口为他们选择他们的文件-它工作正常,然后突然当我试图运行它会开始"不响应"当我按下按钮意味着启动弹出窗口。 我在Jupyter笔记本中的Windows 10上运行Python 3.7.3;tkinter版本是8.6。我有8 GB的内

  • 问题内容: 来自代码标题的问题: 与 问题答案: 来自http://static.springsource.org/spring/docs/2.0.x/reference/transaction.html Spring团队的建议是,您只应使用注释对具体的类进行注释,而不是对接口进行注释。您当然可以将注释放置在接口(或接口方法)上,但这仅在您使用基于接口的代理时才能按预期使用。注解 未继承 的事实意