Попытка воссоздать метод __str __ () в python

Мне было поручено воссоздать методы типа ArrayList для python. Мне удалось воссоздать все, кроме функции str и функции repr, но поскольку они ведут себя в основном одинаково, мне нужна только одна помощь. Ниже мой код для метода, но я продолжаю получать Type Error, заявляя, что «может присоединиться только к итерабельному»

def __str__(self): """Implements `str(self)`. Returns '[]' if the list is empty, else returns `str(x)` for all values `x` in this list, separated by commas and enclosed by square brackets. Eg, for a list containing values 1, 2 and 3, returns '[1, 2, 3]'.""" str= '[' if len(self.data)>0: for i in range(len(self.data)): if i ==0: str1 = str+''.join(self[i]) else: str1 = str+','+ ''.join(self[i]) return str1+']' else: return '[]' 

Для всего этого есть только один улов, и я могу только вызвать следующие методы, чтобы помочь, хотя это не должно быть ограничением для этого метода. Пожалуйста помоги!

Методы: lst [i] для получения и установки значения при существующем положительном индексе i

len (lst), чтобы получить количество слотов

lst.append (None), чтобы увеличить список на один слот в%

del lst [len (lst) -1], чтобы удалить последний слот в списке

One Solution collect form web for “Попытка воссоздать метод __str __ () в python”

Ключ состоит в том, что вы можете использовать str() для элементов списка; поскольку ваш __str__() не вызывает str(self) , у вас не будет бесконечной рекурсии.

Вот один из способов сделать это.

 #UNTESTED def __str__(self): """Implements `str(self)`. Returns '[]' if the list is empty, else returns `str(x)` for all values `x` in this list, separated by commas and enclosed by square brackets. Eg, for a list containing values 1, 2 and 3, returns '[1, 2, 3]'.""" # Assuming that SELF implements iteration return '[' + ', '.join(str(x) for x in self) + ']' # Assuming that iteration isn't implemented return '[' + ', '.join(str(self[i]) for i in range(len(self))) + ']' 
  • Внедрение NoneType, Причины и детали
  • Преобразование int в байты в Python 3
  • Запустить процесс с выходом в реальном времени в графический интерфейс Tkinter
  • Как получить значение переменной, введенное с пользовательского ввода?
  • быстрые байты XORing в python 3
  • Создание словарей друзей, которые знают других друзей в python
  • Как исправить этот IOError: ?
  • django.core.exceptions.ImproperlyConfigured
  • Python - лучший язык программирования в мире.