¿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)

Respuestas a la pregunta(4)

Su respuesta a la pregunta