[Python-Dev] PEP 362 Third Revision

Brett Cannon brett at python.org
Thu Jun 14 19:10:13 CEST 2012


On Thu, Jun 14, 2012 at 12:39 PM, Yury Selivanov <yselivanov.ml at gmail.com>wrote:

> On 2012-06-14, at 12:32 PM, Benjamin Peterson wrote:
>
> > 2012/6/14 Yury Selivanov <yselivanov.ml at gmail.com>:
> >> On 2012-06-14, at 11:24 AM, Brett Cannon wrote:
> >>> On Thu, Jun 14, 2012 at 9:50 AM, Yury Selivanov <
> yselivanov.ml at gmail.com> wrote:
> >>>
> >>> [SNIP]
> >>>
> >>> Let's consider replacement of 'Parameter.is_*' set of attributes with
> >>> a single 'Parameter.kind' attribute, which will have the following
> >>> possible values: 'positional', 'vararg', 'keyword-only', 'varkwarg'.
> >>>
> >>> (I think 'positional' is more intuitive than 'index'?)
> >>>
> >>>
> >>> +1 if this change is made.
> >>
> >> How about adding 'kind' and keeping 'is_*' attributes,
> >> but making them read-only dynamic properties, i.e.:
> >>
> >>   class Parameter:
> >>       ...
> >>
> >>       @property
> >>       def is_vararg(self):
> >>           return self.kind == 'vararg'
> >>
> >>       ...
> >>
> >> ?
> >
> > Seems a bit bloatly to me. (One way to do it.)
>
> Yes, but on the other hand it solves "strings are error prone"
> argument, keeps all 'is_*' attributes in sync, and makes them
> read-only.
>
> 'kind' property may do validation on set, to diminish mistakes
> probability even further.
>

I agree with Benjamin, it goes against TOOWTDI without enough of a
justification to break the rule. Just make the strings constants on the
Parameter class and you solve the lack of enum issue.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20120614/aaec580e/attachment.html>


More information about the Python-Dev mailing list