如何从包的更深层部分访问__init__.py变量

Esc*_*alo 7 python

我为另一个__init__.py问题道歉.

我有以下包结构:

+contrib
  +--__init__.py
  |
  +database
      +--__init__.py
      |
      +--connection.py
Run Code Online (Sandbox Code Playgroud)

在顶级__init__.py我定义:USER='me'.如果我import contrib从命令行,那么我可以访问contrib.USER.

现在,我想contrib.user从withih 访问,connection.py但我不能这样做.

__init__.py我发布时会调用顶级from contrib.database import connection,因此Python实际上是在创建参数USER.

所以问题是:如何__init__.py级中访问顶级声明的参数和变量.

谢谢.

编辑:

我知道你可以添加import contribconnection.py,但似乎重复,因为它是明显的(错误呢?),如果你需要connection.py你已经导入contrib.

Wai*_*ung 13

添加import contribconnection.py是要走的路.是的,该contrib模块已经导入(您可以从中找到sys.modules).问题是您的connection.py代码中没有对模块的引用.进行另一次导入将为您提供参考.您无需担心额外的加载时间,因为模块已经加载.