@albertalexandrov

Как вернуть float из len()?

Здравствуйте!

Стоит задача вернуть длину вектора при помощи функции len(). Класс вектора инициализируется координатами x и y.

class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __len__(self):
        return math.sqrt(self.x**2 + self.y**2)  # TypeError: 'float' object cannot be interpreted as an integer


Задание:

Реализовать класс 2-мерных векторов Vec2d — определить основные математические операции: сумма Vec2d.__add__, разность Vec2d.__sub__, умножение на скаляр и скалярное умножение (Vec2d.__mul__); добавить возможность вычислять длину вектора a через len(a); добавить метод int_pair для получение пары (tuple) целых чисел.


Функция len() возвращает int. Как вернуть float?

P.S. Это из курса на курсере.
  • Вопрос задан
  • 825 просмотров
Пригласить эксперта
Ответы на вопрос 1
BuriK666
@BuriK666
Компьютерный псих
Не путайте len и длину вектора
Вам нужно реализовать перегрузку метода, подробнее:
https://stackoverflow.com/questions/7642434/is-the...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы