PEP 8说:
- Imports are always put at the top of the file, just after any module comments and docstrings, and before module globals and constants.
有时,我违反了 PEP 8。有时我在函数中导入东西。作为一般规则,如果有一个只在单个函数中使用的导入,我会这样做。
有什么意见吗?
编辑(我觉得在函数中导入可能是个好主意):
主要原因:可以让代码更清晰。
- 查看函数代码时,我可能会问自己:“什么是函数/类 xxx?” (函数内部使用了xxx)。如果我在模块的顶部有我的所有导入,我必须去那里看看 xxx 是什么。这在使用
from m import xxx
时更成问题。在函数中看到m.xxx
可能会告诉我更多信息。取决于m
是什么:它是众所周知的顶级模块/包(import m
)吗?还是子模块/包(from a.b.c import m
)? - 在某些情况下,在使用 xxx 的位置附近添加额外信息(“什么是 xxx?”)可以使函数更易于理解。
最佳答案
从长远来看,我认为您会喜欢将大部分导入放在文件顶部,这样您就可以通过需要导入的内容一眼看出您的模块有多复杂。
如果我要向现有文件添加新代码,我通常会在需要的地方进行导入,然后如果代码仍然存在,我会将导入行移至文件顶部,从而使事情变得更加永久。
另外一点,我更喜欢在运行任何代码之前获得 ImportError
异常——作为健全性检查,因此这是在顶部导入的另一个原因。
我使用 pyChecker
来检查未使用的模块。
关于python - 导入内部函数是pythonic吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1024049/