当参数具有相同的名称时如何恢复内置?
How to restore a builtin when parameter has same name?
我知道您“not supposed to”使用内置名称作为函数的参数,但有时它们最有意义:
def foo(range=(4,5), type="round", len=2):
但是如果这已经完成,并且 range
变量已经被处理并且不再需要,我如何返回内置 range
并在 [=14= 中使用它]?
del range
不恢复内置:
UnboundLocalError: local variable 'range' referenced before assignment
import __builtin__
range = __builtin__.range
import builtins
range = builtins.range
同样对于两个 python 版本,您可以使用 __builtins__
而无需导入任何内容。
例子-
>>> def foo(range=(4,5)):
... print(range)
... range = __builtins__.range
... print(range)
...
>>> foo()
(4, 5)
<class 'range'>
我知道您“not supposed to”使用内置名称作为函数的参数,但有时它们最有意义:
def foo(range=(4,5), type="round", len=2):
但是如果这已经完成,并且 range
变量已经被处理并且不再需要,我如何返回内置 range
并在 [=14= 中使用它]?
del range
不恢复内置:
UnboundLocalError: local variable 'range' referenced before assignment
import __builtin__
range = __builtin__.range
import builtins
range = builtins.range
同样对于两个 python 版本,您可以使用 __builtins__
而无需导入任何内容。
例子-
>>> def foo(range=(4,5)):
... print(range)
... range = __builtins__.range
... print(range)
...
>>> foo()
(4, 5)
<class 'range'>