[Python-ideas] my take on mutable default arguments (original) (raw)

tomer filiba tomerfiliba at gmail.com
Sat Jan 27 22:42:50 CET 2007


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



More information about the Python-ideas mailing list