Por que devo usar classes em python?

Sou um aprendiz muito amador de Python e recentemente comecei a aprender o conceito de classes. Eu posso entender o conceito de classe (muito) grosso modo, mas não consigo entender por que não posso simplesmente escrever algumas funções em vez de escrever uma classe?

Por exemplo, (estou aprendendo comPython interativo), um dos exercícios dados (que devo escrever usando uma classe) é:

Adicione umdistanceFromPoint método que funciona de forma semelhante adistanceFromOrigin exceto que é preciso umPoint como parâmetro e calcula a distância entre esse ponto e o próprio.

Adicione um métodoreflect_x paraPoint que retorna um novoPoint, um que é o reflexo do ponto sobre o eixo x. Por exemplo,Point(3, 5).reflect_x() é(3, -5).

Eles escreveram o código usando classes 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 que devo usar a classe quando posso escrevê-las da seguinte maneira:

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)

questionAnswers(4)

yourAnswerToTheQuestion