PEP 8说:
- 导入总是放在文件的顶部,就在任何模块注释和文档字符串之后,模块全局变量和常量之前。
有时,我违反了 PEP 8。有时我在函数中导入东西。作为一般规则,如果有一个只在单个函数中使用的导入,我会这样做。
有什么意见吗?
编辑(我觉得导入函数的原因可能是个好主意):
主要原因:它可以使代码更清晰。
- 在查看函数代码时,我可能会问自己:“什么是函数/类 xxx?” (函数内部使用了xxx)。如果我在模块的顶部有我的所有导入,我必须去那里看看 xxx 是什么。这在使用
from m import xxx
. 看到m.xxx
函数可能会告诉我更多。取决于是什么m
:它是众所周知的顶级模块/包(import m
)吗?或者它是一个子模块/包(from a.b.c import m
)? - 在某些情况下,在使用 xxx 的位置附近拥有额外信息(“什么是 xxx?”)可以使函数更易于理解。