gpt4 book ai didi

python - Python 中的 "from A import B.C"?

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:50 38 4
gpt4 key购买 nike

在 Python 中,可以显式导入带点的子模块:

import os.path

使 os.path 可用。

现在,有没有一种简单的方法可以对子子模块做同样的事情?以下代码(不起作用)说明了我在寻找什么:

from A import B.C
from A import B.D

(from A import B 导入 B.CB.D,对于模块 A.B 我需要使用)。我想这样做是因为:

  • 我不想用 CD(from A.B import C, D)污染主命名空间,因为它们没有太多具体名称。
  • 我想将子子模块保留在它们的 B 命名空间中(出于同样的原因)。

一个解决方案是:

from A import B
from A.B import C, D
del C, D

加载并定义 B.CB.D。然而,这是 (1) 非常不寻常,(2) 有些模糊(定义 B.CB.D 的副作用)和 (3) 可能无法保证结果( B.CB.D 总是用这段代码定义吗?)。

这种仅将 B.CB.D(以及 B)放入命名空间的方法是否可以接受?有更好的方法吗?也许实际上最好找到一些易读的折衷方案,例如 from A.B import C as B_C, D as B_D

虽然我坚持使用 Python 2.6(没有 importlib 模块......),但对于这个问题,我也很好奇任何现代解决方案。

最佳答案

为了 from A import B.C 的目的,我建议这样做:

from A.B import C as B_C

关于python - Python 中的 "from A import B.C"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23385002/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com