How to restore a builtin that I overwrote by accident?

built-in, python

Solution

Just delete the name that is masking the builtin:

>>> set = 'oops'
>>> set
'oops'
>>> del set
>>> set
<type 'set'>

You can always still access the original built-in through the `builtins` module (`__builtin__` on Python 2, with underscores and no `s`); use this if you want to override the built-in but want to defer to the original still from the override:

>>> import builtins
>>> builtins.set
<type 'set'>

If you have trouble locating where the masking name is defined, do check all namespaces from your current one up to the built-ins; see Short description of the scoping rules? for what scopes may apply to your current situation.

Problem

I accidentally overwrote `set` by using it as a variable name in an interactive python session - is there any way that I can get access to the original `set` function without just restarting my session? (I have so much stuff in that session that I'd rather not have to do that, although of course I can if necessary.)

Original source

Related problems