在函数内部导入库的优势?

Advantage of importing libraries inside function?

所以我在Python中写了一个小程序。它不会要求很高并且很有趣所以不一定需要针对速度或资源或任何这些进行优化而且我远非专业所以如果这是一个荒谬的问题对不起,但我很好奇:

我正在定义几个需要导入库的小函数(如 5 行)(urllibxml.etree 等)。是否有理由在函数之外执行它们,比如在我的代码开头,而不是在函数的第一行?我认为将它包含在函数中会使将来更容易有效地窃取这些函数,但我也认为它会减慢速度。这里有什么硬性规定或经验法则吗?如果没有,有没有人有什么意见?

实际上,在一个函数中本地导入模块会提高效率(略微)。查找本地名称总是比查找全局名称快,因为全局名称空间是 Python 在搜索名称时最后检查的名称之一。

也就是说,我不建议这样做,原因有以下三个:

  1. 浪费代码行。每个需要特定模块的函数都必须导入它。这意味着您将有很多重复的导入语句。

  2. 它让你的代码的依赖项很难找到。在文件顶部导入的主要原因之一是导入很容易看到。

  3. 违背了PEP 0008,具体说:

    Imports are always put at the top of the file, just after any module comments and docstrings, and before module globals and constants.