On 11/6/2012 1:19 PM, Devin Jeanpierre wrote:
On Nov 6, 2012 1:05 PM, "Ned Batchelder" <n...@nedbatchelder.com
<mailto:n...@nedbatchelder.com>> wrote:
>
> On 11/6/2012 11:26 AM, R. David Murray wrote:
>>
>> On Tue, 06 Nov 2012 18:14:38 +0200, Serhiy Storchaka
<storch...@gmail.com <mailto:storch...@gmail.com>> wrote:
>>>
>>> Another counterintuitive (and possible wrong) example:
>>>
>>> >>> {print('foo'): print('bar')}
>>> bar
>>> foo
>>> {None: None}
>>
>> http://bugs.python.org/issue11205
>
>
> This seems to me better left undefined, since there's hardly ever a
need to know the precise evaluation sequence between keys and values,
and retaining some amount of "unspecified" to allow for implementation
flexibility is a good thing.
"Left undefined"? The behavior was defined, but CPython didn't follow
the defined behaviour.
I would change the reference manual to leave it undefined. Clearly not
many people have been bothered by the fact that CPython implemented it
"wrong". If someone really needs to control whether the keys or values
are evaluated first, they shouldn't use a dict literal.
--Ned.
--Devin (phone)
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com