Я довольно новичок в python, и в качестве упражнения я написал простую функцию обратного вызова.python неожиданно AttributeError
код:
def m_reverse(x):
if len(x) == 1:
return x
return m_reverse(x[:-1]).insert(0,x[-1])
, когда я пытаюсь его я получаю следующее:
>>> m_reverse([1,2,3,4])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in m_reverse
File "<stdin>", line 4, in m_reverse
AttributeError: 'NoneType' object has no attribute 'insert'
, что моя ошибка? Какие-то критические данные мне не хватает?
В качестве примечания: Поскольку '[х] [: -1] 'является законным (и возвращает пустой список), вы можете использовать пустой список в качестве базового аргумента вместо' len (x) == 1'. Это сделало бы ваш код немного более простым, а также заставил бы его работать с пустыми списками вместо того, чтобы создавать исключение. См. [Здесь] (http://pastebin.com/RFED74p0) для примера (с включенным исправлением пользователя mgilson). – abarnert