OOPS:__cmp__函数

时间:2013-01-21 06:44:39

标签: c++ python oop

当我在我的类中实现__cmp__函数时,python是否在内部重载“==”,我们在C ++中是如何做到的?

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

4 个答案:

答案 0 :(得分:3)

定义==时,Python代码中使用的__cmp__的含义会发生变化。在这个特定意义上,Python级别的“== - 运算符”会被您对__cmp__的定义进行修改(请注意,只有在您不定义__eq__时才会这样)。

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

  • Python不是用C ++实现的,而是用C语言实现的,并且没有运算符重载
  • 编写或使用Python代码时,不会重新编译Python本身

答案 1 :(得分:1)

是的,以及__eq____ne__ __lt____le____gt____ge__ (doc)

答案 2 :(得分:1)

与什么相反?这就是__cmp__

虽然它已经被弃用了一段时间,并且它完全消失了3,你应该使用__eq__ and friends代替。

答案 3 :(得分:0)

是的,同样有很多其他运营商和方法。 Python docs中有完整列表。