【问题标题】:Import multiple subdirectories/modules as if they are just one module导入多个子目录/模块,就好像它们只是一个模块一样
【发布时间】:2020-09-06 01:37:26
【问题描述】:

所以我有一个名为 A 的模块/目录,它有 init.py 文件,其中还有另一个名为 B 的模块/目录,其中有它的 init。 py 和一个名为 function.py 的文件,其中有一个名为 dummy() 的函数

这是目录结构

A
|-- __init__.py
|
|-- B
    |
    |-- __init__.py
    |-- function.py

所以我想要的是在包含目录 A 的同一目录中并这样做

from A import *
dummy()

我所做的是在 B/init.py

from dummy import *

那在 A/init.py

import B

我可以做到

from A.B import *

我想写 A 而不是 A.B

【问题讨论】:

    标签: python python-3.x python-2.7 python-import


    【解决方案1】:

    我稍微更改了您的导入代码,现在它似乎可以按照您的意愿工作。 所以在B目录的init.py里面有:

    # __init__.py in B
    from .function import *
    

    在A目录的init.py中:

    # __init__.py in A
    from .B import *
    

    现在,当我在包含 A 的目录中运行 Python shell 并使用 from A import * 时,它调用 dummy() 没有问题。

    但是,有关于在 Python 中使用通配符导入的讨论。例如查看此帖子:Should wildcard import be avoided?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多