How to restore a builtin that I overwrote by accident?

后端 未结 3 875
执笔经年
执笔经年 2020-11-29 08:15

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<

3条回答
  •  时光说笑
    2020-11-29 08:47

    Just delete the name that is masking the builtin:

    >>> set = 'oops'
    >>> set
    'oops'
    >>> del set
    >>> 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
    
    

    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.

提交回复
热议问题