1

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 并且也没有检查未解决的引用。

4

1 回答 1

1

这将取决于具体情况,但如果只是为了满足 linter,您可以将导入放在 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 上的绝对路径。

于 2019-06-10T16:05:47.230 回答