Bob*_*ver 2 python import packages python-import
使用numpy作为一个例子,我似乎无法实现什么做这样一个进口的好处将做到:
import numpy.lib
Run Code Online (Sandbox Code Playgroud)
导入完成后,numpy可以作为名称使用,相当于直接导入它:
import numpy
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,您lib只能使用虚线访问来访问子模块:
>>> numpy.lib
<module 'numpy.lib' from ....>
Run Code Online (Sandbox Code Playgroud)
是否存在做import numpy.lib有益的情况?
实际效果取决于模块的实现方式.外部模块可能会也可能不会导入子包.有关详细信息,请参阅包的教程部分.
例如,这是一个可能的目录结构
outer
??? outer/__init__.py
??? outer/inner
??? outer/inner/__init__.py
Run Code Online (Sandbox Code Playgroud)
>>> import outer # only loads outer
>>> import outer.inner # loads both outer and inner
Run Code Online (Sandbox Code Playgroud)
如果outer/__init__.py文件包含from . import inner,那么你得到:
>>> import outer # loads both outer and inner
>>> import outer.inner # loads both outer and inner
Run Code Online (Sandbox Code Playgroud)
所述numpy的模块第二壳体相匹配,所以import numpy与import numpy.lib具有相同的效果.这是除了numpy的__init__.py文件之外:
from . import core
from .core import *
from . import compat
from . import lib
from .lib import *
from . import linalg
from . import fft
from . import polynomial
from . import random
from . import ctypeslib
from . import ma
from . import matrixlib as _mat
from .matrixlib import *
from .compat import long
Run Code Online (Sandbox Code Playgroud)
在特定情况下numpy的,import numpy并import numpy.lib具有完全一样的效果.
希望能为你清除它:-)