Python: re-initialize a function's default value for subsequent calls to the function.
- by Peter Stewart
I have a function that calls itself to increment and decrement a stack.
I need to call it a number of times, and I'd like it to work the same way in subsequent calls
but, as expected, it doesn't re-use the default value.
I've read that this is a newbie trap and I've seen suggested solutions, but I haven't been able
to make any solution work.
It would be nice to be able to "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
I expected this to work, but it doesn't.
print a(0, [None])
print a(2, [None]) #second call
print a(3, [None]) #third call
Can I reset the function to it's initial state?
Any help would be appreciated.