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

在Python中导入模块的最佳方法,python,python-internals,Python,Python Internals,一次将所有模块函数导入命名空间时是否存在性能劣势,如: from numpy import * A = array([...]) 与仅在需要使用时导入模块功能相比,如下所示: import numpy as np A = np.array([...]) 它不会对性能产生任何明显的影响。它确实污染了模块的名称空间,因为一堆函数可能会影响内置函数(例如,numpy包含its),一般来说,它很难判断函数的实际定义位置,因此您应该避免它。它不会对性能产生任何明显的影响。它确实污染了模块的名称空间,因

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

from numpy import *
A = array([...])
与仅在需要使用时导入模块功能相比,如下所示:

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

它不会对性能产生任何明显的影响。它确实污染了模块的名称空间,因为一堆函数可能会影响内置函数(例如,numpy包含its),一般来说,它很难判断函数的实际定义位置,因此您应该避免它。

它不会对性能产生任何明显的影响。它确实污染了模块的名称空间,因为一堆函数可能会影响内置函数(例如,numpy包含its),一般来说,很难判断函数的实际定义位置,因此,您应该避免它。

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

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

请参见
import numpy
比从numpy import*导入
更惯用参见
import numpy
比从numpy import*
导入
更惯用