Python 如何构造模块,以避免出现诸如;导入模块.module.module";
我有一个模块结构如下:Python 如何构造模块,以避免出现诸如;导入模块.module.module";,python,module,package,Python,Module,Package,我有一个模块结构如下: /module __init__.py /submod_1 __init__.py submod_1_class.py /submod_2 __init__.py submod_2_class.py 但是,我发现必须在submod_1_class.py中导入一个类,并且必须使用以下内容,这让我感到非常恼火: from module.submod_1.submod_1_class im
/module
__init__.py
/submod_1
__init__.py
submod_1_class.py
/submod_2
__init__.py
submod_2_class.py
但是,我发现必须在submod_1_class.py中导入一个类,并且必须使用以下内容,这让我感到非常恼火:
from module.submod_1.submod_1_class import my_class
我希望能够键入以下内容:
from module import my_class
我浏览了网站包
文件夹,并浏览了流行的模块,如numpy
,但我还没有弄清楚如何使用,例如:
import numpy
a = numpy.array([1,2,3,4,5])
当numpy
数组对象的定义深入到numpy
包的几个子文件夹中时,可以使用您可以使用\uuu init\uuuuupy.py
文件定义可以从给定模块导入的内容。例如,对您的结构进行一个非常简单的添加,就可以从子模块1\u类
中绘制类
,这样外部用户就可以从模块导入类
中简单地
/module
__init__.py
from submod_1 import Class
/submod_1
__init__.py
from submod_1_class import Class
submod_1_class.py
/submod_2
submod_2_class.py
例如,在numpy
中,顶级\uuuu init\uuuu.py
包含以下内容:
from .core import *
这意味着在中定义的所有内容都可以直接在numpy
名称空间中从外部获得,即使它实际上可能被深埋在一些复杂的结构中。添加一些\uuuuu init\uuuuuuuy.py
文件来定义应该从每个模块访问的内容。例如,如果在/module
中有一个包含来自submod_1.submod_1_类导入类的,则可以从模块外部从模块导入类。例如,坚持使用numpy
,意味着中定义的所有内容都可以直接从numpy
@jornsharpe导入。请在回答中说明这一点,这样您就可以获得我想要给您的投票分数。