【发布时间】:2019-05-29 07:05:00
【问题描述】:
我正在使用一个带有__init__.py 的包仅从模块导入一个变量,但整个模块本身并未暴露。有没有办法访问那个模块?
让我们看看这个案例:
整包:
test_package/
├── __init__.py
└── test_me.py
现在内容:
__init__.py:
from .test_me import test_me
test_me.py:
STATIC = 'static'
class Test:
pass
test_me = Test()
现在如果我导入包test_package。我只能访问变量test_me,它是Test 类的一个实例。虽然我无法访问STATIC 变量,因为模块本身没有暴露出来。
在这种情况下,有没有办法访问test_me 模块,而不仅仅是其中一个变量?
附:如果我使用sys 将路径直接附加到该包的模块,当我尝试导入它时会抛出该模块不存在的错误。
【问题讨论】:
-
你到底想做什么?你想在
import test_package之后访问test_package.STATIC吗? -
@feliks 是的,在我的真实情况下,我需要使用该模块内的函数。例如,我想要 STATIC 变量。想法是 su 访问其他属性而不是被暴露。举个例子。
标签: python python-3.x python-import name-collision