Как создать клас с неопределенным количеством переменных? Доброе время суток. У меня вот такая пробема: нужно создать клас - Вектор, который может быть любой размерности. И для него пару методов. У меня загвоздка из инициацией, и представлением в текстовом варианте. 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)) П.С. Извините за мой плохой русский.
Ваша реализация почти правильная, но у вас ошибка в методе str, так как переменная args не определена в этом контексте. Вместо этого вам нужно использовать self.args, чтобы обратиться к переменным класса. Вот исправленный код:
Теперь ваш класс Vector должен работать как ожидается. Вы создаете экземпляр класса с неопределенным количеством переменных, и метод str представляет его в необходимом виде.
Ваша реализация почти правильная, но у вас ошибка в методе 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 представляет его в необходимом виде.