On 20/09/12 22:59, Mark Dickinson wrote: > On Thu, Sep 20, 2012 at 1:21 PM, Nick Coghlan<ncoghlan at gmail.com> wrote: >> +1 for using the unqualified "argument" in these error messages to >> mean "positional or keyword argument" (inspect.Parameter spells it out >> as POSITIONAL_OR_KEYWORD, but the full phrase is far too verbose for >> an error message). > > Ah yes; I see that 'positional or keyword' is a more accurate term > (but agree it's unwieldy for an error message). I also see that I was > naive to think that the 'fix' is as simple as dropping the word > 'positional': > > >>> def f(a, *, b): > ... pass > ... > >>> f() > Traceback (most recent call last): > File "<stdin>", line 1, in<module> > TypeError: f() missing 1 required positional argument: 'a' > > If the word 'positional' were dropped here, it would give the > incorrect impression that f only requires one argument. I don't expect error messages to give a complete catalog of every problem with a specific function call. If f() reports that required argument 'a' is missing, that does not imply that no other required arguments are also missing. I think it is perfectly acceptable to not report the missing 'b' until the missing 'a' is resolved. But I do expect error messages to be accurate. +1 to remove the word "positional" from the message. -- Steven
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4