在Python中导入模块的最佳方式

时间:2014-05-22 14:58:10

标签: python python-internals

将所有模块函数一次导入命名空间时是否存在性能劣势,如:

from numpy import *
A = array([...])

与仅在需要使用时导入模块功能相比,如:

import numpy as np
A = np.array([...])

2 个答案:

答案 0 :(得分:4)

它不会对性能产生任何明显影响。它确实污染了模块的命名空间,其中包含一些可能影响内置函数的函数(例如,numpy包含它的own sum implementation),并且通常它很难分辨函数实际定义的位置,所以你应该避免它

答案 1 :(得分:1)

from numpy import *会使每个导入的方法/变量看起来都是代码的组成部分。如果导入的位来自“外部”或者是否在代码中定义,则无法确定。我不认为这是性能问题,而是调试和所谓的“命名空间”,它本身就是一个完整的主题。 当您使用import numpy as np时,请确保将np用作“昵称”,这样导入的代码就不会变成“幻想”。因此,当需要跟踪或追踪特定方法/函数/变量定义或来自哪里时,相对容易或可能,因为`np'将被用作线索。