Почему я должен использовать классы в 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)