Python : 在模块或函数中导入库
Python : Import Libraries in Module or in Function
我创建了一个包含多个用户定义的小函数的模块。其中许多函数需要不同的库函数。现在,我想知道更好的做法是什么——导入模块中的所有库,还是导入函数中的库?在性能方面有什么不同吗?
示例代码
my_module.py
from math import exp
from numpy import mean,random
def logit(x):
return exp(x)/(1+exp(x))
def sample_mean(mu,sigma,size):
return mean(random.normal(mu,sigma,size))
或者
def logit(x):
from math import exp
return exp(x)/(1+exp(x))
def sample_mean(mu,sigma,size):
from numpy import mean,random
return mean(random.normal(mu,sigma,size))
P.S.
这只是解释我的困境的示例代码。不要告诉我有现成的函数可以使用而不是这些用户定义的函数。我已经知道
不会有太大的好处。 Python 风格指南鼓励程序员将所有导入放在模块文件的开头。
在开头导入是 Python 哲学和风格的一部分。
正如您在代码中所示,一种提高效率的方法是仅导入您需要的内容:from numpy import mean,random
。
如果你在一个函数中导入它会给你一个小的效率优势,但除非你正在处理一个时间非常关键的应用程序,否则最好使用一般的 Pythonic 风格,在开始时导入所有东西。
模块导入速度非常快,但不是即时的。这意味着:
- 将导入放在模块的顶部是一项微不足道的成本,只需支付一次。
- 将导入放在一个函数中会导致对该函数的调用花费更长的时间。
因此,如果您关心效率,请将导入放在首位。仅当您的分析显示有帮助时才将它们移动到一个函数中。
取决于您的功能的相关程度,但通常在模块级别更清晰。如果您的功能不相关,那么对每个功能进行不同的导入将完全没问题,并且会暗示它们的独立性。到那时,我只会制作两个单独的 python 文件。
我创建了一个包含多个用户定义的小函数的模块。其中许多函数需要不同的库函数。现在,我想知道更好的做法是什么——导入模块中的所有库,还是导入函数中的库?在性能方面有什么不同吗?
示例代码
my_module.py
from math import exp
from numpy import mean,random
def logit(x):
return exp(x)/(1+exp(x))
def sample_mean(mu,sigma,size):
return mean(random.normal(mu,sigma,size))
或者
def logit(x):
from math import exp
return exp(x)/(1+exp(x))
def sample_mean(mu,sigma,size):
from numpy import mean,random
return mean(random.normal(mu,sigma,size))
P.S.
这只是解释我的困境的示例代码。不要告诉我有现成的函数可以使用而不是这些用户定义的函数。我已经知道
不会有太大的好处。 Python 风格指南鼓励程序员将所有导入放在模块文件的开头。
在开头导入是 Python 哲学和风格的一部分。
正如您在代码中所示,一种提高效率的方法是仅导入您需要的内容:from numpy import mean,random
。
如果你在一个函数中导入它会给你一个小的效率优势,但除非你正在处理一个时间非常关键的应用程序,否则最好使用一般的 Pythonic 风格,在开始时导入所有东西。
模块导入速度非常快,但不是即时的。这意味着:
- 将导入放在模块的顶部是一项微不足道的成本,只需支付一次。
- 将导入放在一个函数中会导致对该函数的调用花费更长的时间。
因此,如果您关心效率,请将导入放在首位。仅当您的分析显示有帮助时才将它们移动到一个函数中。
取决于您的功能的相关程度,但通常在模块级别更清晰。如果您的功能不相关,那么对每个功能进行不同的导入将完全没问题,并且会暗示它们的独立性。到那时,我只会制作两个单独的 python 文件。