(original) (raw)

I notice  code.interact() in Python 2.6 has a parameter for locals but not globals. Should it?

Ultimately,  exec is used underneath so I don't see a technical reason why it couldn't add a global parameter. Also, although one could pass in a dictionary that is the merger or update() of locals() and globals(),  this has a couple of downsides.


First, if the intention is to allow update of local and global variables, combining the two into a single dictionary wreaks havoc. Even if one doesn't care about this, when the underlying exec is performed it will see different and wrong values for the functions locals() and globals() among other problems of this kind.