进口声明的地方

xra*_*alf 5 python import module

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

我经常只使用某些模块中的一些函数.在函数调用之前将import语句紧紧地放在我身上似乎更漂亮.

例如

# middle of the source file
import mod
mod.something()
Run Code Online (Sandbox Code Playgroud)

你会推荐什么?为什么?

pio*_*kuc 6

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


g.d*_*d.c 5

也可以在这里作为答案移动我的评论,尽管感觉有点多余.

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

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