On 3/26/2011 5:55 AM, Lie wrote:
On Mar 26, 5:10 pm, Terry Reedy<tjre...@udel.edu> wrote:
On 3/26/2011 12:17 AM, Stefan Behnel wrote:
Not "restarted" in the sense that it gets cleaned up, though. The above
simply passes an explicit value for it that will be used for the single
call.
Which satisfies the time test need, but...
> Future calls won't be affected.
Good point. If one does fib(10000) and wants to dump the cache without
dumping all references to the function object, one can currently do
fib_iter.__kwdefaults__['_cache'] = [0,1]
to truly reset the cache, at least with CPython.
Alternatively:
new_cache = [0, 1]
fib_iter(100, new_cache)
fib_iter(200, new_cache)
No, that is not an alternative to what I wrote ;-).
As Stefan pointed out above, passing a value to over-ride a default only
substitutes for the default in that one call. It is like a temporary
substitute teacher. It does not replace the default in the function
object. The assignment I give above is like a permanent replacement
teacher. The previous cache list will be garbage collected.
--
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list