Почему я должен использовать классы в Python?

Я очень любитель изучать Python, и недавно я начал изучать концепцию классов. Я могу приблизительно понять концепцию классов (очень), но не могу понять, почему я не могу просто написать некоторые функции вместо того, чтобы писать класс?

Например, (я учусь уИнтерактивный питон) одно из заданий (которое я должен написать, используя класс):

ДобавитьdistanceFromPoint метод, который работает аналогичноdistanceFromOrigin кроме того, что требуетсяPoint в качестве параметра и вычисляет расстояние между этой точкой и собой.

Добавить методreflect_x вPoint который возвращает новыйPoint, тот, который является отражением точки вокруг оси х. Например,Point(3, 5).reflect_x() является(3, -5).

Они написали код с использованием таких классов:

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

Почему я должен использовать класс, когда я могу написать их просто так:

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)

Ответы на вопрос(4)

Ваш ответ на вопрос