0

我有一个名为的 Python 项目osinttool,其中包含一个名为的文件夹osinttool,其中包含 .py 文件。在这个文件夹中,我有一个名为 database 的文件夹,其中包含一个名为 db.py 的文件,并且有几个函数可以在我的数据库中创建条目、删除它们等等。在我的其他文件中,我只是这样导入'from database import db'并且效果很好。

问题是,db.py 中有这么多代码,我想拆分代码,让每个不同的资源都有自己的文件,但我仍然想只导入一个模块来使用所有这些数据库功能。如果我什至不必更改使用 DB 模块的文件中的任何内容,那就太好了。

我怎么能那样做?

4

1 回答 1

1

我建议db自己转换成一个包,其目录结构如下所示,包括一个__init__.py提供包的公共 API 的文件。

- db
    - __init__.py
    - dbtools.py

假设你的包中有一个模块dbtools.pydb它定义了一个函数initialize_db_connection__init__.py然后,您可以在同一级别创建一个文件,其内容如下:

from .dbtools import initialize_db_connection

然后,您可以将其导入为from db import initialize_db_connection,即使该函数位于包中的模块中。

在已经导入 as 的模块中from database import db,您的函数可以作为db.initialize_db_connection.

于 2020-03-12T13:59:43.837 回答