def main_function(**kwargs):
return subfunction_1(**{k: v for k, v in kwargs.items() if k in ['a', 'b', 'c']})
+ subfunction_2(**{k: v for k, v in kwargs.items() if k in ['d', 'e', 'f']})
What I was thinking was a "deferred" builtin that would just allow a lower function to define the value (and raise an exception if anyone tried to use it before it was defined)
def main_function(a=deferred, b=deferred, c=deferred, d=deferred, e=deferred, f=deferred):
return subfunction_1(a=a, b=b, c=c) + subfunction_2(d=d, e=e, f=f)
I assume this has been discussed before somewhere, but couldn't find anything on it, so please feel free to point me towards any previous discussion on the topic.