Преобразуйте список в строку с помощью ООП

#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. Очень полезно! Спасибо