[英]Best practice for writing own functions with imported modules in Python?
我正在尝试在 tools.py 模块中为正在进行的项目编写自己的函数/方法。
我需要为这些方法导入一些模块,如 numpy,但我不确定执行此操作的最佳方法。 每次调用 function 时,我是否应该在每种方法中导入? 还是在开头的 tools.py 脚本中? 我并不总是需要 tools.py 中的所有功能,例如,在我调用import tools
的脚本中并不总是需要 numpy 。 我希望我的代码尽可能高效。
如果我不直接在特定脚本中调用它,我只发现不需要导入 numpy 的信息。
我可能是错的,但我很确定无论您使用import sys
还是from sys import argv
导入模块都会加载整个内容。 因此,将numpy
导入tools
模块将使整个 numpy 模块可用于工具模块,尽管不能直接调用,但无论工具模块导入到何处。 我只在 function 中看到导入以实现可选的库支持。 我没有听说为了效率或性能而这样做。
这些链接可能会有所帮助:
import 语句是否应该始终位于模块的顶部? https://softwareengineering.stackexchange.com/q/187403
您不应该在每次方法调用时都导入 numpy 。 这应该只在脚本开始时执行一次。 如果您不想在 tools.py 中导入整个模块,只需从库中导入您需要的特定子模块:
from numpy import submodule1, submodule2
您总是可以只导入模块的特定函数或类,即:
from tools import myfunction
此外,如果您不需要它,则不要导入 numpy 是正确的。 但是,就我的经验而言,当前脚本中不提供导入的导入。
这意味着当您的tools.py包含导入 numpy,并且您在另一个脚本main.py中加载您的工具时,numpy (即numpy.array()
)将不会在main.py中可用您还需要将其导入那里。
但是,您也可以在函数内部导入模块以减少脚本的可见性和初始启动时间,另请参阅此链接
此处还提供了一些一般性能提示
这就是说,总的来说,现代计算机已经发展到现在,在大多数用例中,imo 不需要太担心性能
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.