Как создать клас с неопределенным количеством переменных? Доброе время суток.
У меня вот такая пробема: нужно создать клас - Вектор, который может быть любой размерности. И для него пару методов. У меня загвоздка из инициацией, и представлением в текстовом варианте. a = Vector(1,2,3)
str(a) == '(1,2,3)' #так должень быть представлен
Вот что я сам пробовал, но увы(class Vector:
def __init__(self, *args):
for arg in args:
setattr(self, str(arg), arg)

def __str__(self):
return "({})".format(",".join(args))
П.С. Извините за мой плохой русский.

21 Авг 2019 в 07:07
212 +1
0
Ответы
1

Ваша реализация почти правильная, но у вас ошибка в методе str, так как переменная args не определена в этом контексте. Вместо этого вам нужно использовать self.args, чтобы обратиться к переменным класса. Вот исправленный код:

class Vector:
def __init__(self, *args):
self.args = args
def __str__(self):
return "({})".format(",".join(map(str, self.args)))
a = Vector(1, 2, 3)
print(str(a)) # '(1,2,3)'

Теперь ваш класс Vector должен работать как ожидается. Вы создаете экземпляр класса с неопределенным количеством переменных, и метод str представляет его в необходимом виде.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир