#python #oop #arraylist
#питон #ООП #список объектов
Вопрос:
Я пытаюсь преобразовать список в одну строку последовательности, используя метод в ООП. Например, я хотел бы преобразовать [«Стек», «над», «поток», 3] в «Stackoverflow3».
Когда я попытался это сделать, результаты все равно возвращались в виде списка-
class NewClass: def __init__(self, array): self.array = array def __str__(self): return "".join(str(i) for i in self.array) s_1 = ["Stack", "over", "flow", 3] print(s_1.__str__())
Я получил этот вывод — ['Stack', 'over', 'flow', 3]
Не могли бы вы, пожалуйста, подсказать мне, как это сделать правильно?
Комментарии:
1. ГДЕ вы создаете экземпляр этого нового класса, который использует ваш необычный метод? Я просто вижу, как вы составляете базовый список … и распечатайте эту подсказку подсказку
2. имейте в виду, что : вы используете метод dunder напрямую (что вам не следует делать) — используйте
print(s_1)
(вызывает его неявно) илиprint(str(s_1))
делайте это неявно
Ответ №1:
Вам необходимо создать экземпляр определенного класса:
class NewClass: def __init__(self, array): self.array = array def __str__(self): return "".join(str(i) for i in self.array) s_1 = NewClass(["Stack", "over", "flow", 3]) print(s_1) # print 'automatically' uses __str__!
Из:
Stackoverflow3
Ответ №2:
Вам необходимо создать экземпляр класса «NewClass», прежде чем передавать аргумент списка. Ваш код должен выглядеть так: `
class NewClass: def __init__(self, array): self.array = array def __str__(self): return "".join(str(i) for i in self.array) s_1 = NewClass(["Stack", "over", "flow", 3]) print(s_1.__str__())`
Комментарии:
1. Очень полезно! Спасибо