Причина, по которой второй вызов не выдает никаких результатов, связана с рекурсивным вызовом в строке выше.Значение массива []
к тому времени, когда вызывается temp2
, потому что списки изменчивы в этом контексте.
temp1 = self.func(array)
даст следующий вывод:
>>> temp.func(x)
[1, 2, 3, 4, 5, 6]
[2, 3, 4, 5, 6]
[3, 4, 5, 6]
[4, 5, 6]
[5, 6]
[6]
Послеэта функция завершается, список был изменен, и значение array
теперь равно []
.Возможно, вы захотите создать глубокую копию вашего списка перед выполнением каких-либо мутаций в нем.