导入内部或外部功能

时间:2011-08-24 08:32:05

标签: python

  

可能重复:
  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位吗?

2 个答案:

答案 0 :(得分:6)

PEP 8指定:

  • 导入总是放在文件的顶部,就在任何模块之后   注释和文档字符串,以及模块全局和常量之前。

    进口应按以下顺序分组:

    1. 标准库导入
    2. 相关的第三方导入
    3. 本地应用程序/库特定导入

      您应该在每组导入之间添加一个空行。

      在导入后添加任何相关的所有规范。

答案 1 :(得分:3)

我基本上同意罗伯特S.的回答,但有时将其置于一个功能中是有道理的。特别是如果你想控制导入机制。如果您无法确定是否确实可以访问特定模块,这将非常有用。考虑这个例子:

def foo():
    try:
        import somespecialmodule
        # do something
        # ...
    except ImportError:
        import anothermodule
        # do something else
        # ...

标准库模块甚至可能是这种情况(我特别考虑到optparseargparse模块)。