【问题标题】:Placement of 'import' in a Python script在 Python 脚本中放置“导入”
【发布时间】:2017-04-19 01:26:12
【问题描述】:

这是关于“导入”命令的放置 (一般问题 - 很难找到类似的问题)

Give somefunction 需要 a,而 somefunction 在单独的文件中。 我看到了三种可能的选择。如果我要在函数中导入某些东西,哪个是更好的做法?还是有其他选择?

## 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

【问题讨论】:

    标签: python import location


    【解决方案1】:

    PEP 8 的一般指导:

    导入总是放在文件的顶部,就在任何模块之后 cmets 和 docstrings,以及模块全局变量和常量之前。

    也就是说,人们有时会在极少数情况下将导入放在函数中,即只应在特定函数调用的情况下导入模块(通常是当模块并不总是可用时,或者为了避免循环导入,或者如果导入确实花费了一些费用并且需要推迟)。例如,请参阅server adapters for the itty micro-webframework

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

    【讨论】:

    • 非常感谢您改进我的问题和您的回答
    • 希望我有限的语言和编码能力没有打扰到您
    【解决方案2】:

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

    【讨论】:

    • 非常感谢您的回答,我会按照您的做法!
    【解决方案3】:

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

    【讨论】:

    • 感谢您的回答!我不知道一般指导!
    猜你喜欢
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多