我知道你" not supposed to"使用内置名称作为函数的参数,但有时它们最有意义:
def foo(range=(4,5), type="round", len=2):
但是,如果已完成此操作并且range
变量已被处理且不再需要,那么如何返回内置range
并在foo()
内使用它?
del range
无法恢复内置:
UnboundLocalError: local variable 'range' referenced before assignment
答案 0 :(得分:4)
import __builtin__
range = __builtin__.range
import builtins
range = builtins.range
答案 1 :(得分:3)
同样对于这两个python版本,您可以使用__builtins__
而无需导入任何内容。
示例 -
>>> def foo(range=(4,5)):
... print(range)
... range = __builtins__.range
... print(range)
...
>>> foo()
(4, 5)
<class 'range'>