Попытка воссоздать метод __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))) + ']' 
  • OS X cmake не может найти PythonLibs 3.4
  • Как создать таблицу без использования методов или for-loops?
  • Установка модулей python на Ubuntu
  • Cython: pyximport: включение профилирования в pyximport.install
  • Ограничение размера файла для read ()?
  • Функция Python для вычисления расстояния с использованием формулы haversine в пандах
  • Принимая слово плавания
  • Как сохранить порядок ключей JSON с помощью Python 3 json.dumps?
  •  
    Interesting Posts for Van-Lav

    Обновление миллионов строк в MySQL – когда нужно совершить

    Можете ли вы использовать методы патчей обезьян для основных типов в python?

    Индексы совпадающих скобок в Python

    как вставить какой-либо текст во весь контекст django с использованием промежуточного программного обеспечения django

    Почему numpy.argmax для списка всех False bools дает ноль?

    Удаление согласных из строки в Python

    Pandas: проанализировать объединенные столбцы заголовков из Excel

    Как остановить приложение qt от замораживания основной программы?

    Scikit-learn cross val score: слишком много индексов для массива

    Как сделать маркеры на линиях меньше в matplotlib?

    Существует стандартный способ объявить старые версии python неподдерживаемыми?

    Определенная мощность суммы цифр N == N (работает слишком медленно)

    Утверждают, что два словаря почти равны

    Как создать собственный класс списка в python?

    Разделение целого числа на Python?

    Python - лучший язык программирования в мире.