0

当我在我的类中实现函数时,python 是否会在内部重载“==” __cmp__,就像我们在 C++ 中那样做?

只是好奇。我是 python 新手。:)

4

4 回答 4

3

==您定义__cmp__. 在这种特殊意义上,Python 级别的“==-operator”由您的定义修改__cmp__(请注意,仅当您不定义时才如此__eq__)。

但是operator==在 C++ 级别上不受此影响,原因有两个:

  • Python 不是用 C++ 实现的,而是用 C 实现的,并且没有运算符重载
  • 当您编写或使用 Python 代码时,Python 本身不会重新编译
于 2013-01-21T06:49:30.003 回答
1

是的,连同__eq__, __ne__ __lt__, __le__, __gt____ge__(doc)

于 2013-01-21T06:48:29.920 回答
1

相对于什么?这__cmp__就是. _

虽然它已经被弃用了一段时间,而且它完全在 3 中消失了,你应该使用__eq__和朋友来代替。

于 2013-01-21T06:48:42.463 回答
0

是的,还有很多其他的运算符和方法。Python 文档中有完整的列表。

于 2013-01-21T06:49:45.010 回答