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

为什么Python有__ne__运算符方法而不是__eq__?

宋原
2023-03-14
问题内容

这里的答案为需要__ne__返回除的逻辑倒数以外的内容的情况提供了有用的参考__eq__,但是我无法想象有任何这种情况。有什么例子吗?


问题答案:

SQLAlchemy是一个很好的例子。对于未启动的用户,SQLAlchemy是一个ORM,并使用Python表达式生成SQL语句。在诸如

meta.Session.query(model.Theme).filter(model.Theme.id == model.Vote.post_id)

model.Theme.id == model.VoteWarn.post_id不返回一个布尔值,但最终能产生像SQL查询的对象WHERE theme.id = vote.post_id。倒数会产生类似的结果,WHERE theme.id <> vote.post_id因此需要定义两种方法。



 类似资料:
  • 问题内容: 为什么在Python中没有and运算符? 问题答案: 不是因为它没有道理;而是因为它没有意义。最好将“ x ++”定义为“ x + = 1,求出x的先前绑定”。 如果您想知道最初的原因,则必须浏览旧的Python邮件列表,或者询问那里的某个人(例如Guido),但是在事实成立之后就很容易找到理由了: 与其他语言一样,不需要简单的增量和减量。您不会经常用Python编写东西。相反,你做类

  • 问题内容: 因此我正在研究的类源代码()以了解如何将转换为。似乎正在使用称为(第433行)的程序包私有方法将转换为数组。 尽管代码并不难理解,但是有多行代码使用逐位移位运算而不是简单的算术乘法/除法,例如以下几行代码: 和 我只是不明白这样做的目的,这实际上是一种优化,并且会影响算法的运行时间吗? 编辑: 换句话说,由于编译器在内部进行这种类型的优化,因此这种手动优化是否必要? 问题答案: 我不知

  • 我试图用if-let表达来概括我的大脑。我知道它的作用,但我找不到一些细节背后的基本原理。 第一个细节是赋值运算符而不是相等运算符的使用,第二个细节是操作数的位置。 例如: 在我看来,这样更“清晰”: 或者更好: 有人能帮我理解这背后的原理吗?

  • 我知道,如果操作数为整型,运算符将返回类型的prvalue。我还知道,如果操作数是浮点类型,运算符将生成类型的prvalue。 但是为什么要使用三方比较运算符而不是双向运算符(,,,,,)?这会给我带来什么好处吗?

  • 前面章节介绍了 Python 中的各个序列类型,每个类型都有其独特的操作方法,例如列表类型支持直接做加法操作实现添加元素的功能,字符串类型支持直接做加法实现字符串的拼接功能,也就是说,同样的运算符对于不同序列类型的意义是不一样的,这是怎么做到的呢? 其实在 Python 内部,每种序列类型都是 Python 的一个类,例如列表是 list 类,字典是 dict 类等,这些序列类的内部使用了一个叫作

  • 首先,我想问为什么默认三向运算符的行为不同于用户定义运算符? 其次,这个问题的解决方案对于类是正确的,还是应该以不同的方式处理? 这只是一个简单的例子,我想到了更复杂的情况,有几十个字段和联合(如果您不知道我的意思,请查看一些Intel API;))。 我稍微修改了示例中的类,以便更多地描述实际生活中的问题(当默认运算符不是有效的解决方案时)。我还想澄清,我想知道这些差异背后的原因(用户定义和默认