在多文件项目中导入函数包的最佳实践是什么

问题描述 投票:0回答:1

我有一个多文件项目,其中有一个主文件,并从其他文件导入几乎所有必需的函数。其中一些功能需要特定的软件包。
我会在主文件的开头导入所有包,但是如果没有在主文件中导入,我导入的函数将无法工作。这被认为是不好的做法吗?如果是这样,实现这一点的最佳方法是什么?

python function import
1个回答
0
投票

我在您的案例中看到的是缺少/缺乏适当的项目组织。在专业的Python项目中,并非项目中包含的所有文件都是可执行的。可能有 readme.md 或 request.txt 文件,它们可以增强代码的可读性和理解性,同时向读者提供有关一个文件与另一个文件之间可能存在的关系/依赖关系的信息。

您的问题在于项目文件的正确组织。我建议不要在主文件中导入/包含任何包。导入包的正确位置是您使用它们的位置。或者,如果您对此不满意,则需要将该文件包含在主文件中,如下例所示。

from module1 import function_a
from module2 import function_b

# Main logic
function_a()
function_b()

其中 module1.py 可以通过以下方式定义

import numpy as np  # Import only what is needed

def function_a():
  print(np.array([1, 2, 3]))

和 module2.py as

import pandas as pd  # Import only what is needed

def function_b():
    print(pd.DataFrame({'A': [1, 2, 3]}))

等等。最后,为了提醒自己和其他人您已包含哪些软件包,您可以包含一个requirement.txt,如下所示

numpy
panda
...
© www.soinside.com 2019 - 2024. All rights reserved.