In Python, how can I call a function using the default value of an argument? I know it can be done just not passing the parameter when you call the function, but I would prefer to pass the variable through the function though. Having these two functions: def A(argA1=defValA1, argA2=defValA2, argA3=defValA3): argB1val=K*argA1 argB2val=K*argA2 argB3val=K*argA3 B(argB1=argB1val, argB2=argB2val,argB3=argB3val) def B(argB1=defValB1, argB2=defValB2, argB3=defValB3): print("First argument: "+argB1) print("Second argument: "+argB2) print("Third argument: "+argB3) If I call A() with all the arguments, there's no problem: Main: A(argA1val, argA2val, argA3val) But what if I call A() with some missing arguments? Main: A(argA1val) In this case, inside the A() function, B() will be called taking the default values for the last two: B(argB1= K*argA1, argB2= K* defValA2, argB3= K* defValA3) However, I’d like to call B() using the default values of their last two arguments, something like: B(argB1= K*argA1, argB2=defValB2, argB3=defValB3) So, I would like A() to be something like: def A(argA1=defValA1, argA2=defValA2, argA3=defValA3): if (argA1==defValA1): argB1val=B.getDefaultValue("argB1") else: argB1val=K*argA1 if (argA2==defValA2): argB2val=B.getDefaultValue("argB2") else: argB2val=K*argA2 if (argA3==defValA3): argB3val=B.getDefaultValue("argB3") else: argB3val=K*argA3 B(argB1=argB1val,argB2=argB2val,argB3=argB3val) Otherwise, I’d need to do something like: def A(argA1=defValA1, argA2=defValA2, argA3=defValA3): if (argA1==defValA1 && argA2!=defValA2 && argA3!=defValA3): argB2val=K*argA2 argB3val=K*argA3 B(argB1= defValB1, argB2=argB2val,argB3=argB3val) if (argA1!=defValA1 && argA2==defValA2 && argA3!=defValA3): argB1val=K*argA1 argB3val=K*argA3 B(argB1=argB1val, argB2= defValB2,argB3=argB3val) if (argA1!=defValA1 && argA2!=defValA2 && argA3==defValA3): argB1val=K*argA1 argB2val=K*argA2 B(argB1= argB1val, argB2=argB2val,argB3= defValB1) if (argA1==defValA1 && argA2==defValA2 && argA3!=defValA3): argB3val=K*argA3 B(argB1= defValA1, argB2= defValA2,argB3=argB3val) # etc. Having even a lot more combinations if we have more parameters. Does anyone know if there's a way to get the default value of a parameter to be passed in a function? Continue reading...