[Python-Dev] PEP 362 Third Revision
Yury Selivanov
yselivanov.ml at gmail.com
Thu Jun 14 22:45:08 CEST 2012
On 2012-06-14, at 4:24 PM, Benjamin Peterson wrote:
> 2012/6/14 Alexandre Zani <alexandre.zani at gmail.com>:
>> On Thu, Jun 14, 2012 at 12:57 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:
>>> On Thu, 14 Jun 2012 12:46:38 -0700
>>> Ethan Furman <ethan at stoneleaf.us> wrote:
>>>>
>>>> This is no different from what we have with strings now:
>>>>
>>>> --> 'aA'.islower()
>>>> False
>>>> --> 'aA'.isupper()
>>>> False
>>>> --> 'a'.islower()
>>>> True
>>>> --> 'A'.isupper()
>>>> True
>>>>
>>>> We know that a string cannot be both all-upper and all-lower at the same
>>>> time;
>>>
>>> We know that because it's common wisdom for everyone (although who knows
>>> what oddities the unicode consortium may come up with in the future).
>>> Whether a given function argument may be of several kinds at the same
>>> time is much less obvious to most people.
>>
>> Is it obvious to most people? No. Is it obvious to most users of this
>> functionality? I would expect so. This isn't some implementation
>> detail, this is a characteristic of python parameters. If you don't
>> understand it, you are probably not the audience for signature.
>
> Consequently, the "kind" model should match up very well with their
> understanding that a parameter can only be one "kind" at a time.
I myself now like the 'kind' attribute more than 'is_*' family.
Brett and Larry also voted for it, as well the majority here.
I'll amend the PEP this evening to replace 'is_args', 'is_kwargs',
and 'is_keyword_only' with a 'kind' attribute, with possible
values: 'positional', 'vararg', 'varkw', 'kwonly'.
Parameter class will have four constants, respectively:
class Parameter:
KIND_POSITIONAL = 'positional'
KIND_VARARG = 'vararg'
KIND_VARKW = 'varkw'
KIND_KWONLY = 'kwonly'
'Parameter.is_implemented' will be renamed to 'Parameter.implemented'
Is everybody OK with this? Thoughts?
I, for instance, like 'varkwarg' more than 'varkw' (+ it is more
consistent with **kwargs)
-
Yury
More information about the Python-Dev
mailing list