可能重复:
Should Python import statements always be at the top of a module?
在一个非常简单的单文件python程序中,如
# ------------------------
# place 1
# import something
def foo():
# place 2
# import something
return something.foo()
def bar(f):
...
def baz():
f = foo()
bar(f)
baz()
# ----------------
你会将“导入内容”放在第1或第2位吗?
答案 0 :(得分:6)
PEP 8指定:
导入总是放在文件的顶部,就在任何模块之后 注释和文档字符串,以及模块全局和常量之前。
进口应按以下顺序分组:
本地应用程序/库特定导入
您应该在每组导入之间添加一个空行。
在导入后添加任何相关的所有规范。
答案 1 :(得分:3)
我基本上同意罗伯特S.的回答,但有时将其置于一个功能中是有道理的。特别是如果你想控制导入机制。如果您无法确定是否确实可以访问特定模块,这将非常有用。考虑这个例子:
def foo():
try:
import somespecialmodule
# do something
# ...
except ImportError:
import anothermodule
# do something else
# ...
标准库模块甚至可能是这种情况(我特别考虑到optparse
和argparse
模块)。