在函数内导入库的好处?

时间:2015-01-14 03:00:35

标签: python python-3.x module python-import

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

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

1 个答案:

答案 0 :(得分:7)

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

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

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

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

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

      

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