У меня есть функция, которая вызывает себя для увеличения и уменьшения стека.
Мне нужно звонить несколько раз, и я бы хотел, чтобы он работал аналогичным образом при последующих вызовах
но, как и ожидалось, он не использует значение по умолчанию.
Я читал, что это ловушка для новичка, и я видел предложенные решения, но я не смог
, чтобы любое решение работало.
Было бы неплохо иметь возможность "fun.reset"
def a(x, stack = [None]):
print x,' ', stack
if x > 5:
temp = stack.pop()
if x <=5:
stack.append(1)
if stack == []:
return
a(x + 1)
print a(0)
print a(2) #second call
print a(3) #third call
Я ожидал, что это сработает, но это не так.
print a(0, [None])
print a(2, [None]) #second call
print a(3, [None]) #third call
Можно ли вернуть функцию в исходное состояние?
Буду признателен за любую помощь.