[Python-3000] rough draft signature PEP

Michael Chermside mcherm at mcherm.com
Wed Apr 26 18:17:17 CEST 2006


Talin writes:
> 2) I noticed in your PEP that you followed the same mental model as is
currently
> used in the compiler, which is that *args and **args are treated as special
> cases. In other words, the description of a function's arguments consists of
an
> array of "regular" arguments, plus a couple of "special" argument fields.
>
> My mental model is a little different, as I tend to see the argument as a
single
> list, where arguments have different modifiers, where * and ** are modifiers.
In
> other word, my model follows more closely (IMHO) the way that arguments are
read
> by the programmer.

Brett responds:
> Yeah, I see what you are saying.  But I actually held this view long
> before Iearned how Python did things underneath the covers.
>
> I have no clue how people tend to view things.  Anyone else care to
> comment on how they tend to see arguments?

My mental model matches Brett's.

I think of the argument signature as defining what arguments are
permitted/required by the caller -- more a static process than a
dynamic one. So instead of imagining *args as meaning "now bind all
the rest of the positional arguments" I think of it more as "and
then you're allowed as many positional arguments as you like".

-- Michael Chermside



More information about the Python-3000 mailing list