在Python脚本中放置'import'

时间:2017-04-19 01:26:12

标签: python import location

这是关于'import'命令的放置 (一般性问题 - 很难找到类似的问题)

提供某些功能需要 a 某些功能位于单独的文件中。 我看到三种可能的选择。如果我要在函数中导入某个东西,哪一个更好?或者还有其他选择吗?

## main command lines
import a                   # choice 1: import in a main command line
import file.somefunction

somefunction()

## function command lines in a separate file
import a                   # choice 2: import ahead of function

def somefunction():
    import a               # choice 3: import within function

3 个答案:

答案 0 :(得分:0)

我认为通常的做法是将模块导入到任何地方。因此,如果a由某个函数使用,它位于一个单独的文件中,那么在某个函数所在的文件顶部会有import a。 然后,在您的其他文件中,您将导入file.somefunction并根据需要使用它。

答案 1 :(得分:0)

一般指导(根据PEP 8)是将导入放在文件的顶部。

答案 2 :(得分:0)

PEP 8的一般指导:

  

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

也就是说,人们有时会在少数情况下将导入放入函数中,在这种情况下,只有在特定函数调用的情况下才能导入模块(通常在模块不能始终可用时,或者为了避免循环导入,或者如果进口需要支付费用并且需要延期)。例如,请参阅server adapters for the itty micro-webframework

另一种做法是将if __name__ == '__main__'之后的一些导入放在仅用于主要部分的模块中。当有人导入当前模块时,这可以防止不必要的子导入。