将所有模块函数一次导入命名空间时是否存在性能劣势,如:
from numpy import *
A = array([...])
与仅在需要使用时导入模块功能相比,如:
import numpy as np
A = np.array([...])
答案 0 :(得分:4)
它不会对性能产生任何明显影响。它确实污染了模块的命名空间,其中包含一些可能影响内置函数的函数(例如,numpy包含它的own sum
implementation),并且通常它很难分辨函数实际定义的位置,所以你应该避免它
答案 1 :(得分:1)
from numpy import *
会使每个导入的方法/变量看起来都是代码的组成部分。如果导入的位来自“外部”或者是否在代码中定义,则无法确定。我不认为这是性能问题,而是调试和所谓的“命名空间”,它本身就是一个完整的主题。
当您使用import numpy as np
时,请确保将np
用作“昵称”,这样导入的代码就不会变成“幻想”。因此,当需要跟踪或追踪特定方法/函数/变量定义或来自哪里时,相对容易或可能,因为`np'将被用作线索。