¿Por qué debería usar clases en python?
Soy un aprendiz muy aficionado de Python, y recientemente comencé a aprender el concepto de clases. Puedo entender el concepto de clases (muy) más o menos, pero no puedo entender por qué no puedo simplemente escribir algunas funciones en lugar de escribir una clase.
Por ejemplo, (estoy aprendiendo dePython interactivo) uno de los ejercicios dados (que se supone que debo escribir usando una clase) es:
Agrega undistanceFromPoint
método que funciona de manera similar adistanceFromOrigin
excepto que se necesita unPoint
como parámetro y calcula la distancia entre ese punto y uno mismo.
Agregar un métodoreflect_x
aPoint
que devuelve un nuevoPoint
, uno que es el reflejo del punto sobre el eje x. Por ejemplo,Point(3, 5).reflect_x()
es(3, -5)
.
Escribieron el código usando clases como esta:
import math
class Point:
""" Point class for representing and manipulating x,y coordinates. """
def __init__(self, initX, initY):
""" Create a new point at the given coordinates. """
self.x = initX
self.y = initY
def getX(self):
return self.x
def getY(self):
return self.y
def distanceFromOrigin(self):
return ((self.x ** 2) + (self.y ** 2)) ** 0.5
def distanceFromPoint(self, otherP):
dx = (otherP.getX() - self.x)
dy = (otherP.getY() - self.y)
return math.sqrt(dy**2 + dx**2)
p = Point(3, 3)
q = Point(6, 7)
print(p.distanceFromPoint(q))
¿Por qué debería usar class cuando puedo escribirlos simplemente así:
def distanceFromPoint(p,q): # they are tuples
y = (p[0]-q[0])**(2)+(p[1]-q[1])**(2)
return y**(1/2)
def reflectx(p):
return (p[0],-p[1])
p = (3,3)
q = (6,7)