进口声明的地方

时间:2012-03-12 17:29:32

标签: python import module

我多次注意到 import mod 语句可以在调用 mod.something()之前紧密放置。虽然我注意到通常开发人员将import语句放在源文件的开头。这有充分的理由吗?

我经常只使用某些模块中的一些功能。在函数调用之前紧紧放置import语句似乎更漂亮。

e.g。

# middle of the source file
import mod
mod.something()

你会推荐什么?为什么?

2 个答案:

答案 0 :(得分:6)

在调用函数/使用该模块中的类之前导入模块的一个原因是性能:有时模块的初始化可能很昂贵,因为,例如,它涉及加载和初始化本机库。如果不总是调用模块中的代码,那么将该模块的导入推迟到最后一刻是个好主意。

答案 1 :(得分:5)

也可以在这里作为答案移动我的评论,虽然感觉有点多余。

  

PEP样式指南要求所有导入都在模块的开头进行。这使人们更容易知道您的模块具有哪些依赖关系,而不必深入挖掘整个源文档。

作为警告 - 在极少数情况下导入会导致错误(循环导入是最好的示例),您可以在使用某些功能之前立即导入。但总的来说,这是一种糟糕的形式。如果您需要导入模块顶部以外的其他位置,则通常表明存在设计缺陷。