python - 导入本地函数的 PEP8 风格建议是什么?

标签 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 并且也不检查未解析的引用。

最佳答案

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

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

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

关于python - 导入本地函数的 PEP8 风格建议是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56529773/

相关文章:

python - 引入大整数常量的最优雅/pythonic 方式是什么?

python - 我应该使用内置异常还是定义自己的异常?

python - 处理异常的首选方法是什么?

python - 长变量赋值推荐换行

python - 找到一条直线上的最大等距点

Python 从 URL 中抓取 YouTube 标题太慢 - html-render

python - 将 dict 写入 txt 文件并将其读回?

python - PyCharm 代码检查不包括 PEP 8

python - 让点沿着弯曲的轨迹移动