On 2008-01-25, Steven Bethard wrote:
> On Jan 25, 2008 12:18 AM, Mark Summerfield <[EMAIL PROTECTED]> wrote:
> > On 2008-01-25, Guido van Rossum wrote:
> > > For the record, I'm thinking Raymond has won this argument fair and
> > > square, and I'm withdrawing my opposition.
> > >
> > > I hope it isn't too confusing that {1: 1} creates a *mutable* dict
> > > while {1} creates an *immutable* frozenset. I still find this slightly
> > > inelegant. But the practicality of being able to treat set literals as
> > > compile-time constants wins me over.
> >
> > So this will produce:
> >
> >     frozenset() # empty frozen set
> >     {1}         # 1 item frozen set
> >     {1, 2}      # 2 item frozen set
> >     {}          # empty dict
> >     {1:1}       # 1 item dict
> >     {1:1, 2:2}  # 2 item dict
> >
> > I think this is confusing and messy, especially for new Python
> > programmers.
> >
> > If you're going to make the change, why not make things consistent:
> >
> >     {}          # empty frozen set
> >     {1}         # 1 item frozen set
> >     {1, 2}      # 2 item frozen set
> >     {:}         # empty dict
> >     {1:1}       # 1 item dict
> >     {1:1, 2:2}  # 2 item dict
>
> This has been discussed and rejected as it would break too much code.
> Check the archives during the set literals discussions.
>
> STeVe

Python 3 is going to break compatibility anyway. I thought one of the
purposes of having a new major release was to allow for such changes.

In 2 or 3 years from now Python 3 will be "Python" for most people, and
confusing inconsistencies won't be seen to have any rationale.

-- 
Mark Summerfield, Qtrac Ltd., www.qtrac.eu

_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to