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/