为项目导入库

Importing libraries for projects

我有一个包含多个 类 和文件的 python 项目。

这是我的文件夹结构:

main.py
directory
  |_ parent_class.py
  |_sub_directory_1
     |_child_class_1.py
  |_sub_directory_2
     |_child_class_2.py

我正在使用 pandas 和 numpy 等相同的导入,例如在所有文件中。有没有办法一次性导入这些代码,这样我的代码就更干净了? 非常感谢。

除非有一个文件被所有其他文件导入,否则您无法执行此操作。即使在那种情况下,您也必须使用 from <file> import *(这不是一个好的做法),或者每次您想要引用其中一个模块时都使用 <file>.<module>,这只会让事情变得不必要地长。

因此,这样做通常不是一个好主意...

...但是,如果所有文件共享大量导入,并且您确定这样做会使您的代码更清晰,您可以考虑专门为此目的创建一个新文件。

例如,您可以在顶层添加一个名为 common_imports 的文件,将所有导入内容放在那里,然后在每个文件的开头使用 from common_imports import *

所以:

common_imports.py

import numpy as np
import pandas as pd
...
...

其他文件

from common_imports import *
...  # Other imports

...
...

有一种方法可以在父模块中“重构”您的导入,然后从 parent_module.

导入 *

但是我不推荐这种做法,因为您的项目增长得越多,您就越有可能产生循环导入!

我会说最好的做法是只在你真正需要它们的地方导入你的 packages/modules。如果你想要一个更干净的代码库,我可以向你推荐诸如 isort 之类的工具,它会自动格式化你的导入!