У меня есть функция, которая перебирает многоуровневый вложенный словарь (arg1), собирая данные на каждой итерации, примерно так:
def dummy(arg1, found=[], index=0):
found.append('xyz')
for d in arg1:
dummy(arg1[d], found, index+1)
return found
Мои функции работают так, как предполагалось, проблема в том, что когда Я вызываю функцию во второй раз, найденный аргумент сохраняет значение из предыдущего вызова функции, т.е. возвращаемое значение из второго вызова включает в себя возвращаемые значения из предыдущего вызова. Мне пришлось добавить что-то вроде
if index == 0:
found=list() # restart value
в начало функции, чтобы инициализировать значение найденного аргумента. Есть идеи, почему это происходит? это ошибка?