Estoy haciendo un proyecto en Python (3.2) para el cual necesito comparar objetos definidos por el usuario. Estoy acostumbrado a la POO en Java, donde se podría definir un método compareTo()
en la clase que especifica el orden natural de esa clase, como en el siguiente ejemplo:Python equivalente de Java's compareTo()
public class Foo {
int a, b;
public Foo(int aa, int bb) {
a = aa;
b = bb;
}
public int compareTo(Foo that) {
// return a negative number if this < that
// return 0 if this == that
// return a positive number if this > that
if (this.a == that.a) return this.b - that.b;
else return this.a - that.a;
}
}
Soy bastante nuevo a clases/objetos en Python, entonces me gustaría saber cuál es la forma "pitónica" de definir el orden natural de una clase?
¿Quieres decir como [ '__cmp__'] (http : //docs.python.org/reference/datamodel.html#object.__cmp__)? –