导入本地功能的PEP8样式建议是什么?

时间:2019-06-10 16:00:33

标签: python pep8 zen-of-python

PEP8指示您将导入内容放在代码的顶部,这允许 读者可以看到您要在一处导入的内容。

但是,如果您有本地的功能库以导入功能,则必须先更改当前目录。

如果您尝试更改目录,则会收到PEP8违规信息,因为您的导入并非全部集中在一个地方

import sys
import pandas as pd

sys.path.insert(0, r'local\path')

from local_functions import function_1

我了解“愚蠢的一致性是小思想的霍布布林”,而且如果我必须处理PEP8违规行为,那就可以了。

我只是想象有一个实际的解决方案,因为很多人必须编写函数并将其导入。

是否有一种方法可以导入本地存储的函数,而不会造成PEP8违规?

编辑: 如此处所述: https://stackoverflow.com/a/53832780/9936329

# noinspection PyUnresolvedReferences
from local_functions import function_1  # noqa: E402

请注意,您有意破坏PEP8,也不检查未解决的引用。

1 个答案:

答案 0 :(得分:1)

这取决于具体情况,但是如果只是为了满足要求,您可以将导入内容放在try / except块中吗?

import sys
import pandas as pd

try:
    from local_functions import function_1
except ModuleNotFoundError:
    sys.path.insert(0, r'local\path')
    from local_functions import function_1

或者,您可以使用相对或绝对导入,给出模块相对于项目文件夹的位置,或HD上的绝对路径。