
On Wed, Oct 27, 2021 at 5:30 AM Ricky Teachey <ricky@teachey.org> wrote:
But with function k below, where the b parameter is deferred, you can't get the default b parameter by dynamically unpacking some values; you would have to pass c as a kwd arg:
def k(a, b=>len(a), c=None): ...
Seems like it would be- needed? convenient?- to be able to "ask" for the default in a dynamic way... Am I making more of this than is justified?
Question: Does it make sense to ask for the default for the second positional parameter, while passing an actual value for the third? If it does, then the function needs an API that reflects this. The most obvious such API is.... what you already described: passing c as a keyword argument instead. I don't think this is a problem. When you're looking at positional args, it is only ever the last N that can be omitted. If it makes sense to pass any combination of arguments, then they should probably be keyword-only, to clarify this. Do you have any examples where this isn't the case? ChrisA