Comparação de "habilitação" para classes

Gostaria de alguma ajuda no meu CSC HW. É sobre classes / objetos e é uma classe simples sobre a definição de um círculo, com o nome da classe Círculo (objeto).

O texto exato do HW (completei as duas primeiras partes deste hw e, portanto, esta 3ª parte é uma expansão do problema inicial):

"" "Expanda sua classe Circle ativando a comparação de objetos Circle usando operadores como <,>,> =, <=, == e! =, Em que um círculo é considerado" maior "que outro, se for de fato, maior (ou seja, tem maior área) o outro círcul

O seguinte código:

A = Circle(2, 5, 1.5)
B = Circle(-6, 1, 1)
print A < B, A != B, A >= B

Deve gerar esta saída:

False True True

Este é o meu código para exibir as coordenadas e o raio do círculo:

class Circle(object):
    def __init__(self, x=0, y=0, r=0):
        self.x = x
        self.y = y
        self.r = r
    def __str__(self,):
        return "Circle at (%d , %d). Radius: %f" % (self.x, self.y, self.r)

def main():
    print Circle(3, 5, 4.0)

main()

A saída desta classe é "Círculo em (3, 5). Raio: 4: 000000"

Fomos apontados para uma determinada página do nosso livro com operadores de matemática para as aulas: eq (), gt (), ge (), lt (), le (), ne (), etc. Então, eu estava pensando, meu professor queria algo assi

import math
class Circle(object):
    def __init__(self, x=0, y=0, r=0):
        self.x = x
        self.y = y
        self.r = r
    def __str__(self):
        return "Circle at (%d , %d). Radius: %f" % (self.x, self.y, self.r)
    def calcArea(self, r):
        self.r = r
        return (math.pi)*(r**2)
    def __gt__(self, circ1Radius, circ2Radius)
        self.circ1Radius = circ1Radius
        self.circ2Radius = circ2Radius
        r1 = circ1Radius
        r2 = circ2Radius
        r1 > r2 or r2 > r1
    def __ge__(self, circ1Radius, circ2Radius)
    #And so on for __lt__(), __le__(), __ne__(), etc
def main():
    A = Circle(3,4,1.5) 
    B = Circle(1,2,5.0)
    C = Circle(5,7,7) 
    D = Circle(9,8,3)
    print A < B, B > C, A < C, A >= C
main()
#Output should be "True, False, True, False"

Temos que fazer uma definição / atributo para cada método que queremos usar na classe? Agradeço antecipadamente

questionAnswers(4)

yourAnswerToTheQuestion