14

如果有人跑过

from numpy import *

然后内置的all和其他几个函数被numpy同名的函数所掩盖。

发生这种情况的最常见情况(人们没有完全意识到)是在开始ipythonipython --pylab(但你不应该这样做,使用--matplotlib,它不会将任何东西导入你的名称空间,但会设置与 gui 相关的魔法,反而)。

完成此操作后,是否有调用内置函数的方法?

这是值得做的,因为内置all可以处理生成器,而numpy版本不能。

4

2 回答 2

12

你可以做

all = __builtins__.all

该语句from numpy import *基本上做了两件事

  1. 导入模块numpy
  2. 将模块中所有导出的名称复制到当前模块

通过重新分配原始值,__builtins__您可以恢复所需功能的情况。

于 2013-09-12T21:16:57.037 回答
3

您可以通过重新导入内置函数来纠正这些问题:

In [1]: all
Out[1]: <function all>

In [2]: from numpy import *

In [3]: all
Out[3]: <function numpy.core.fromnumeric.all>

In [4]: from __builtin__ import *

In [5]: all
Out[5]: <function all>
于 2013-09-18T20:36:47.240 回答