The Ref Man doesn't explicitly say anything about Python's left-to-right evaluation order. Strict left- to-right was Guido's intent, though, and it comes up a few times per year on c.l.py (indeed, I was just replying to a msg asking about it). The docs should get fleshed out. There's also a bug: >>> counter = 0 >>> def i(): ... global counter ... counter += 1 ... return counter ... >>> {i(): i()} {2: 1} >>> {i(): i(), i(): i()} {4: 3, 6: 5} >>> That is, key:value *pairs* are evaluated left to right, but within a single key:value pair, the value gets evaluated first. When I asked Guido about that some years ago, he agreed it was a bug.
Logged In: YES user_id=21627 The patch looks fine, please apply it. It would be good to check that Jython meets all your expectations in this respect, and that it, in particular, executes all the examples in the documentation in the right order. This change should *not* be backported to 2.2 IMO.