[Python-Dev] PEP 362 minor nits

Jim Jewett jimjjewett at gmail.com
Tue Jun 19 22:17:46 CEST 2012


On Tue, Jun 19, 2012 at 2:10 PM, Yury Selivanov <yselivanov.ml at gmail.com> wrote:
> On 2012-06-19, at 12:33 PM, Jim Jewett wrote:
>
>> On Tue, Jun 19, 2012 at 11:53 AM, Yury Selivanov
>> <yselivanov.ml at gmail.com> wrote:
>>
>>>> Based on:  http://hg.python.org/peps/file/tip/pep-0362.txt
>>>> view pep-0362.txt @ 4466:659639095ace
>>>> ==================
>>
>>>>   142 * args : tuple
>>>>   143     Tuple of positional arguments values.  Dynamically computed from
>>>>   144     the 'arguments' attribute.
>>>>   145 * kwargs : dict
>>>>   146     Dict of keyword arguments values. Dynamically computed from
>>>>   147     the 'arguments' attribute.

>>> Correct, we push as much as possible to 'args'.

[examples to clarify]

OK, I would just add a sentence and commented example then, something like.

Arguments which could be passed as part of either *args or **kwargs
will be included only in the args attribute.  In the following
example:

    >>> def g(a=1, b=2, c=3): pass
    >>> s=signature(g)
    >>> ba=s.bind(a=10, c=13)
    >>> ba.args
    (10,)
    >>> ba.kwargs
    {'c': 13}

Parameter a is part of args, because it can be.

Parameter c must be passed as a keyword, because (earlier) parameter b
is not being passed an explicit value.

> I can tweak the PEP to make it more clear for those who don't know
> that staticmethods are not exactly methods, but do we really need that?

I would prefer it, if only because it surprised me.  When do
distinguish between methods, staticmethod isn't usually the odd man
out.

And I also agree that the implementation doesn't need to change
(except to add a comment), only the PEP.

-jJ


More information about the Python-Dev mailing list