导入一个完整的包或子包而不是包中的模块意味着什么?

2024-07-01 07:54:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在改进我原来的问题(因此我编辑了这篇文章):

假设我们有一个名为“PackageA”的包。在这个包中,我们有一个子包叫做“SubPackageA”。在这个子包中,我们有一个名为“ModuleA”的模块,这个模块包含一个名为“functionA”的函数。你知道吗

我知道为了调用此函数,我必须执行以下导入操作:

import PackageA.SubPackageA.ModuleA

然后,我可以通过以下方式调用函数:

PackageA.SubPackageA.ModuleA.functionA()

我也明白我可以做到:

from PackageA.SubPackageA.ModuleA import functionA

然后我可以通过以下方式调用函数:

ModuleA.functionA()

我不清楚的是:可以通过以下方式导入包和/或子包:

import PackageA

import PackageA.SubPackageA

但我这样做有什么好处呢?毕竟,为了能够调用“functionA”,我必须专门导入模块,那么导入完整的包和/或完整的子包有什么好处呢?你知道吗

谢谢你, 塔尔。你知道吗


Tags: 模块函数fromimport编辑方式调用函数篇文章
1条回答
网友
1楼 · 发布于 2024-07-01 07:54:15

我正试图通过进一步的研究来回答我自己的问题。让我们忽略子包以使其更简单。你知道吗

假设我有“PackageA”,在这个包中,我有一个名为“ModuleA”的模块,其中包含一个名为“functionA”的函数。你知道吗

而不是写:“导入模块包装“在我的主文件中,我可以在PackageA dunder init文件中写:“from PackageA import ModuleA”,然后在我的主文件中,我可以简单地写:“import PackageA”并且仍然能够调用函数(通过写包装模块功能()". 你知道吗

如果您的包中有一个模块,这就没有意义了,但是使用包的整个思想是将相互关联的多个模块组合在一起,如果您从包的dunder init文件导入所有模块,那么在代码(主文件)中,只需导入软件包,即可访问所有模块的所有功能,而不是单独导入每个模块。

我说得对吗?你知道吗

相关问题 更多 >

    热门问题