On Wed, Dec 05, 2012 at 10:59:26AM -0700, Ian Kelly wrote: > On Wed, Dec 5, 2012 at 10:34 AM, Steven D'Aprano > <steve+comp.lang.pyt...@pearwood.info> wrote: > > The difference is almost certain between the LOAD_CONST and the > > LOAD_GLOBAL. > > > > As to *why* there is such a difference, I believe that's a leftover from > > early Python days when None was not a keyword and could be reassigned. > > I think this should even be considered a bug, not just a missing > optimization. Consider:
This is definitely a bug > >>> globals()['None'] = 42 > >>> def f(x): > ... return None > ... print(x) > ... > >>> f('test') > 42 This one is pretty scary The difference between `return None` and `return` leads to inconsistency and is in contradiction with the specs, AFAIK. I'm glad we pointed this out. -- Bruno Dupuis -- http://mail.python.org/mailman/listinfo/python-list