Me gustaría obtener ayuda con mi CSC HW. Está en clases/objetos, y es una clase simple sobre la definición de un círculo, con la clase de nombre Círculo (objeto)."Habilitar" la comparación para las clases
El texto exacto del HW (I completaron las dos primeras partes de este HW y por lo tanto esta tercera parte es una expansión en el problema inicial):
"" "Expandir en su clase Circle, permitiendo la comparación de objetos circulares que utilizan operadores como <,>,> =, < =, == y! =, donde un círculo se considera "más grande" que otro si de hecho es más grande (es decir, tiene mayor área) que el otro círculo .
El siguiente código:
A = Circle(2, 5, 1.5)
B = Circle(-6, 1, 1)
print A < B, A != B, A >= B
debe generar esta salida:
False True True
Este es mi código para la visualización de las coordenadas y el radio del 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()
La salida de esta clase es "círculo en (3, 5). Radio: 4: 000000"
Nos indicaron a una determinada página de nuestro libro de texto con operadores matemáticos para las clases: eq(), gt(), ge(), lt() , le(), ne(), etc. Así que estaba pensando, qué mi profesor quiere algo como esto?
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"
¿hay que hacer una Definit ion/attribute para cada método que queremos usar en la clase? Gracias de antemano.
Sí, lo noté hace un rato, también, gracias por eso. Tiendo a programar en exceso y dejo el código que generalmente no es necesario o que se lleva como peso muerto ... Cuando eres un principiante, creo que uno tiende a enfocarse más en lograr que el programa funcione que la legibilidad y la concisión. – Derrick