在函数内导入库的好处?

kmd*_*wey 1 python module python-import python-3.x

所以我正在用Python编写一个小程序.这不是非常苛刻,而且是为了好玩,所以不一定需要针对速度或资源或其中任何一个进行优化而且我远非专业人士,所以如果这是一个荒谬的问题抱歉,但我很好奇:

我定义的几个小功能(如5号线),将需要的库导入(urllib,xml.etree,等).是否有理由在函数之外执行它们,比如在代码的开头,而不是作为函数的第一行?我认为在函数中使用它会使将来更容易有效地窃取这些函数,但我也认为这有点慢.这里有任何硬性规定或经验法则吗?如果没有,有没有人有任何意见?

iCo*_*dez 7

实际上,在函数内部导入模块可以提高效率(略).查找本地名称总是比查找全局变量更快,因为全局命名空间是Python在搜索名称时检查的最后一个.

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

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

  2. 它使您的代码的依赖性很难找到.导入文件顶部的主要原因之一是导入很容易看到.

  3. 它反对PEP 0008,具体说:

    导入总是放在文件的顶部,就在任何模块注释和文档字符串之后,以及模块全局变量和常量之前.