Message126458
setdefault() is a method, its arguments are evaluated then the function is called. This is not a bug, and this behavior cannot change.
If you are trying to "cache" the computation of a function, you should try "memoizing" techniques, like the one mentioned here: http://code.activestate.com/recipes/52201-memoizing-cacheing-function-return-values/
Then you can write::
@Memoize
def fib(n):
return fib(n-1) + fib(n-2)
fib.memo = {(0,): 1, (1,): 1}
@Memoize
def func(n):
return 1/float(n)
func.memo = {(0.0,): infinite} |
|
Date |
User |
Action |
Args |
2011-01-18 12:14:19 | amaury.forgeotdarc | set | recipients:
+ amaury.forgeotdarc, albert.neu |
2011-01-18 12:14:19 | amaury.forgeotdarc | set | messageid: <1295352859.47.0.183030916297.issue10930@psf.upfronthosting.co.za> |
2011-01-18 12:14:12 | amaury.forgeotdarc | link | issue10930 messages |
2011-01-18 12:14:12 | amaury.forgeotdarc | create | |
|