Is it possible to change a function's default parameters in Python? -


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:

  1. store original function somewhere

    oldf = f f = functools.partial(f, y = 42) //work changed f f = oldf //restore 
  2. use partial.func

    f = f.func //go previous version. 

Comments