On 2012-06-14, at 4:24 PM, Benjamin Peterson wrote:
> 2012/6/14 Alexandre Zani <[email protected]>:
>> On Thu, Jun 14, 2012 at 12:57 PM, Antoine Pitrou <[email protected]> wrote:
>>> On Thu, 14 Jun 2012 12:46:38 -0700
>>> Ethan Furman <[email protected]> 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
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com