关于python:导入内部或外部函数

import inside or outside function

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Should Python import statements always be at the top of a module?

在一个非常简单的单文件python程序中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# ------------------------

# 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号位置吗?


PEP 8 specifies说: </P >

  • 他们总是把是在顶部的任何文件,是售后模块 评论和字符串,和在模块的全局变量和常数。 </P >

    他们应该grouped在下面的命令: </P >

  • 标准库中的进口
  • 相关的第三方的进口
  • 局部应用/图书馆特异性进口 </P >

    你应该把每一行之间的空白组的进口。 </P >

    把任何相关的所有规格的进口产品的售后。 </P >


在"D principally同意与罗伯特回答,但有时它丈夫意识到把它变成(一)功能。尤其是如果你想控制的进口机制。这是有用的,如果你不能肯定如果你祈祷,实际上有一个特定的模块访问。考虑这个实例: </P >

1
2
3
4
5
6
7
8
9
def foo():
    try:
        import somespecialmodule
        # do something
        # ...
    except ImportError:
        import anothermodule
        # do something else
        # ...

这是可能的情况,甚至要求的标准库模块(尤其是已经进入心灵的optparseargparsemodules)。 </P >