Помогите найти ошибку
Напишите класс двумерного вектора Vector. Класс должен иметь два поля (две переменных класса):
x_coor: float
y_coor: float
При инициализации объекта класса Vector в качестве аргументов конструктора должны передаваться два вещественных значения (float), описывающие перечисленные поля.
Класс должен иметь несколько методов:
Метод возвращающий длину вектора length();
Метод, возвращающий сонаправленный единичный вектор get_unit_vector().
А так же перегрузите операторы __add__ (сложение двух векторов, возвращение нового), __sub__ (вычитание второго вектора из первого, возвращение нового), __radd__ (увеличение значений левого операнда на значения правого операнда), __rsub__ (уменьшение значений левого операнда на значения правого операнда), __mul__ (при умножении вектора на вектор – скалярное произведение), __str__ (возвращает строку ‘Vector(x, y)’, где x и y – координаты вектора).
from math import sqrt
class Vector:
x_coor: float
y_coor: float
def __init__(self, _x_coor, _y_coor):
self.x_coor = _x_coor
self.y_coor = _y_coor
def length(self):
return sqrt(self.x_coor ** 2 + self.y_coor ** 2)
def get_unit_vector(self):
length = self.length()
return Vector(self.x_coor / this_length, self.y_coor / this_length)
def __add__(self, other):
new_x = self.x_coor + other.x_coor
new_y = self.y_coor + other.y_coor
return Vector(new_x, new_y)
def __sub__(self, other):
new_x = self.x_coor - other.x_coor
new_y = self.y_coor - other.y_coor
return Vector(new_x, new_y)
def __radd__(self, other):
self.x_coor += other.x_coor
self.y_coor += other.y_coor
return self
def __rsub__(self, other):
self.x_coor -= other.x_coor
self.y_coor -= other.y_coor
return self
def __mul__(self, other):
return self.x_coor * other.x_coor + self.y_coor * other.y_coor
def __str__(self):
return f'Vector({self.x_coor}, {self.y_coor})'
и в чем ошибка