in python, possible redefine default parameters of function @ runtime?
i defined function 3 parameters here:
def multiplynumbers(x,y,z): return x*y*z print(multiplynumbers(x=2,y=3,z=3))
next, tried (unsuccessfully) set default parameter value y, , tried calling function without parameter y
:
multiplynumbers.y = 2; print(multiplynumbers(x=3, z=3))
but following error produced, since default value of y
not set correctly:
typeerror: multiplynumbers() missing 1 required positional argument: 'y'
is possible redefine default parameters of function @ runtime, i'm attempting here?
just use functools.partial
multiplynumbers = functools.partial(multiplynumbers, y = 42)
one problem here: not able call multiplynumbers(5, 7, 9);
should manually y=7
if need remove default arguments see 2 ways:
store original function somewhere
oldf = f f = functools.partial(f, y = 42) //work changed f f = oldf //restore
use
partial.func
f = f.func //go previous version.
Comments
Post a Comment