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