如果参数具有相同的名称,如何恢复内置?

时间:2015-07-02 04:35:34

标签: python parameters built-in

我知道你" not supposed to"使用内置名称作为函数的参数,但有时它们最有意义:

def foo(range=(4,5), type="round", len=2):

但是,如果已完成此操作并且range变量已被处理且不再需要,那么如何返回内置range并在foo()内使用它?

del range无法恢复内置:

UnboundLocalError: local variable 'range' referenced before assignment

2 个答案:

答案 0 :(得分:4)

Python 2.x

import __builtin__
range = __builtin__.range

Python 3.x

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'>