Перечислите целые числа в строку, используя классы - PullRequest
2 голосов
/ 20 апреля 2019

Я хочу написать класс для векторов, и мне нужно иметь возможность привести целые числа в списке к строке и напечатать их.

Пример: [1,2,5] -> "<1,2,5>"

Это то, что я придумал, но оно не работает, любая помощь будет признательна.

class Vector(list):
def __init__(self,other):
    assert len(other)!=0, "Invalid Input!"
    for e in other:
        assert type(e)==int or type(e)==float, "Invalid Input!"
    list.__init__(self,other)
def __str__(self):
    s = ''
    for x in range (len(self)):
        s + = str(self.x)
    return s

Ответы [ 2 ]

4 голосов
/ 20 апреля 2019

Используйте функцию объединения, чтобы объединить себя.

def __str__(self):
    return "<%s>" % ", ".join(self)

Объединение в основном возвращает строку содержимого списка, разделенную запятой и пробелом.Затем мы помещаем угловые скобки в строку, с которой мы их объединяем.

1 голос
/ 20 апреля 2019

Другой вариант с использованием f -струнки

def __str__(self):
    return(f'<{super().__str__()[1:-1]}>')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...