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

化工:

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

Jochen Ritzel:

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因此需要定义这两种方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

为什么Python文档说我在定义__eq__时需要定义__ne__?

有什么方法可以在本地覆盖__eq__函数/运算符并在之后恢复旧的吗?

为什么用__eq__运算符多次评估NotImplemented

Python,我是否应该基于__eq__实现__ne __()运算符?

__eq__方法对==和>运算符均返回True

为什么可以在类中同时覆盖__eq__和__ne__?

__ne__是否使用覆盖的__eq__?

__eq__属性和相等运算符之间的关系?

为什么Python中没有++和-运算符?

__eq__、__ne__、__hash__ 是对象类型的属性吗?

python 运算符 =- 有什么作用?

多个关系(比较)运算符:为什么x <y> z不是有效的语法?

为什么不是和!在MySQL 5中有不同的运算符优先级?

为什么加号运算符在Julia中是矢量化的,而不是除法运算符?

为什么 std::inlcudes 在条件中使用小于运算符而不是相等运算符?

OCaml:为什么比较运算符是类型无关的,而算术运算符不是?

为什么选择二元运算符而不是一元运算符?

为什么运算符过载而不是运算符覆盖?

为什么map.find使用<运算符而不是==运算符?

为什么 '?' 运算符使用From而不是Into?

为什么 += 被视为赋值运算符而 >= 不是?

为什么<< ofstream中的运算符不是const?

为什么C#7 ValueTuples实现Equals方法而不是double equals运算符?

Python中的一切都是对象,为什么运算符不是对象?

Python Pandas-为什么`in`运算符使用索引而不是数据?

为什么在Python中将其称为运算符重载而不是覆盖?

python'不是'运算符

在(def +-)之后,有什么方法可以让+运算符加而不是减?