您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何将多个python文件组织成一个模块而又不像一个软件包?

如何将多个python文件组织成一个模块而又不像一个软件包?

您可以做到这一点,但这并不是一个好主意,您正在与python模块/软件包应该工作的方式作斗争。通过在其中导入适当的名称__init__.py可以使它们在包名称空间中可访问。通过删除模块名称,可以使它们不可访问。(有关为什么需要删除它们的信息,请参阅此问题)。这样一来,您可以通过以下方式接近所需的内容__init__.py

from another_class import doit
from another_class import dataholder
from descriptive_name import getSomeStuff
from descriptive_name import hold_more_data
del another_class, descriptive_name
__all__ = ['doit', 'dataholder', 'getSomeStuff', 'hold_more_data']

但是,这将中断随后的尝试import package.another_class。通常,您不能从中导入任何内容package.module而不package.module能将其作为对该模块的可导入引用进行访问(尽管__all__您可以使用阻塞from package import module)。

更一般而言,通过按类/函数划分代码,您正在使用Python包/模块系统。python模块通常应包含要作为一个单元导入的内容。为了方便起见,直接在顶级包名称空间中导入子模块组件并不少见,但是相反的做法是试图隐藏子模块并 允许通过顶级包名称空间访问其内容,这将导致- 问题。另外,尝试“清理”模块的程序包名称空间没有任何好处。这些模块应该位于程序包名称空间中。那就是他们的归属。

python 2022/1/1 18:32:40 有290人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶