
Jan. 27, 2007
9:42 p.m.
i think this is better: .>>> from copy import deepcopy .>>> .>>> def copydefaults(func): ... defaults = func.func_defaults ... def wrapper(*args, **kwargs): ... func.func_defaults = deepcopy(defaults) ... return func(*args, **kwargs) ... return wrapper ... .>>> @copydefaults ... def f(a, x = []): ... x.append(a) ... print x ... .>>> .>>> f(1) [1] .>>> f(2) [2] .>>> f(3) [3] -tomer