Python 所有进口和相对进口的规则是什么?

Python 所有进口和相对进口的规则是什么?,python,python-2.7,Python,Python 2.7,在一个包中,我在每个模块目录的_uinit__uuu.py中使用了一些检查,以查看环境是否正常,然后使用from。在此处导入嵌套模块mod1的mod1。每个模块目录依次包含一个_init _u; py.py,它将导入下一个较低级别(如果有) 一些_init_uuuuuuuuuuuuuuuupy包含_uuuall_uuuuuuuuuuuuu数组,以便在导入时仅公开某些名称 假设我有以下主脚本spam.py: 以及以下pkgname/db/_init__.py: 尽管pkgname/__init__

在一个包中,我在每个模块目录的_uinit__uuu.py中使用了一些检查,以查看环境是否正常,然后使用from。在此处导入嵌套模块mod1的mod1。每个模块目录依次包含一个_init _u; py.py,它将导入下一个较低级别(如果有)

一些_init_uuuuuuuuuuuuuuuupy包含_uuuall_uuuuuuuuuuuuu数组,以便在导入时仅公开某些名称

假设我有以下主脚本spam.py:

以及以下pkgname/db/_init__.py:

尽管pkgname/__init__.py中有_all__数组,符号pkgname.db.foobar是否仍然可见?即_uall _;数组是否仅影响立即模块或任何较低级别


这里哪些规则控制Python的行为?我试过几次搜索,但都是空手而归。可能我使用了错误的搜索

\uuuuu all\uuuuuuuuuuu,python,relative import?

\uuuuuu all\uuuuuuuuu对您描述的情况没有影响。它只影响从包导入*执行操作时发生的情况。正如我通过谷歌搜索python发现的一样。

\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。它只影响从包导入*执行操作时发生的情况。正如我通过谷歌搜索python找到的一样

我以各种组合使用了所有搜索词,但没有找到该链接。谢谢也谢谢你迅速的回答。据我所知,所有搜索词只与*相关,而不与其他任何内容相关。我使用了各种组合的所有搜索词,但没有找到该链接。谢谢也谢谢你迅速的回答。因此,据我所知,现在所有的只与*有关,而不与其他任何东西有关。
import os, sys

if (sys.version_info[0] != 2) or (sys.version_info < (2,7)):
    sys.exit("...")
else:
    import pkgname

def main():
    pass

if __name__ == '__main__':
    main()
import sys
if __name__ == '__main__':
    sys.exit(0)
else:
    from . import db
    from os.path import dirname, realpath
    sys.modules[__name__].__all__ = ['inipath']
    sys.modules[__name__].__dict__['inipath'] = dirname(realpath(__file__)) + '.ini'
import sys
if __name__ == '__main__':
    sys.exit(0)
else:
    import sqlite3
    # ...
foobar = { 'spam' : 'egg' }

__all__ = ["foobar"]