所以我有两个模块 A 和 B,以及另一个安装的模块 C。假设我在 A 和 B 中使用了 C 的一些方法。我还需要 B 中的模块 A。所以从逻辑上讲,我的导入将是:
A :
import C
乙:
import A
逻辑会告诉我 B 将包含来自 A 和 C 的函数。但是默认情况下这不起作用。从某种意义上说,要在模块 A 中引用 C 中的任何函数,我们需要额外级别的命名空间引用
A.C.some_c_module()
我发现我们可以在 A 和 B 中导入 C,而无需使用讨厌的“C 语言之类”ifdef 克隆,并且可以正常工作。我的问题是,两次导入此类模块是否会受到惩罚?从某种意义上说,python 足够聪明,可以知道 ACsome_module == C.some_module?还是我这样做只是一个坏孩子?