所以我不记得我在哪里听到或读到过这句话,但我记得有人告诉我,出于几个原因,最好只从模块中导入所需的函数或类。
我们应该这么做
from my_module import (needed_function, NeededClass)
from numpy import (arange, nditer, ones, zeros, array ndarray)
needed_function()
NeededClass()
ones
arange(0,16).reshape(4,4)
#etc etc
而不是导入模块并调用所需的函数
import my_module as mm
import numpy as np
mm.needed_function()
mm.NeededClass()
np.ones
np.arange(0,16).reshape(4,4)
#etc etc
我被告知,主要原因是当调用module.function
时,Python必须在本地名称空间中搜索module
,然后在模块的名称空间中搜索function
,然后继续,每次调用module.function
时都必须这样做,这可能非常浪费时间(对于大型计算)。
这与直接导入函数形成了对比,因为这样python只需要在本地名称空间中搜索一次该函数,这比搜索一个可能非常大的名称空间(如numpy或scipy)要简单得多。
是这样吗?
1条答案
按热度按时间kpbwa7wx1#
一些好的答案:https://softwareengineering.stackexchange.com/questions/187403/import-module-vs-from-module-import-function
就我个人而言,我创建的.exe文件需要具有很强的可移植性,并且文件大小尽可能小,因此,我通常只导入单个函数。