Steve Holden wrote:
Terry Reedy wrote:

In 2.x, the *names* 'True' and 'False' can be rebound because bool is
new and people write
try:
  False,True
except NameError:
  False,True = 0,1

to make code back compatible.

I would claim that the ability to rebind True and False is a simple bug,
though one not likely to be fixed in an 2.x release. The code above
doesn't rebind True and False in interpreters that have them ...

In pre-bool 2.x, people never wrote the above but sometime wrote
  False,True = 0,1

To me it is hardly a bug to not gratuitously break substantial amounts of proper code.

Back before rebinding 'None' was prohibited, 'is None' was not
completely guaranteed either (absent reading the rest of a file to be
sure no rebinding would be done).

And that was a bug too, in this case one that *was* removed in 2.4, I
believe. Don't have 2.3 lying around just now.

Unlike with True and False, the devs could not think of or find any proper use case for rebinding None and judged that the new prohibition would break very little if any code. As far as I know, they were correct.

tjr

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to