重新导入别名/阴影python内置方法

tac*_*ell 12 python numpy

如果一个人跑了

from numpy import *
Run Code Online (Sandbox Code Playgroud)

然后内置的all和其他几个函数被numpy具有相同名称的函数遮蔽.

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

一旦完成,无论如何都要调用内置函数?

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

650*_*502 11

你可以这样做

all = __builtins__.all
Run Code Online (Sandbox Code Playgroud)

该声明from numpy import *基本上做了两件事

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

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