我已经在Python 3中构建了一个程序包。问题是,当我导入该程序包时,每个模块都具有在 __ init __。py 中指定的那些功能,以及一个与具有实际包装中所有功能的模块(例如package.package)。
我试图更改我的 __ init __。py 文件,但我想我对它的工作方式不了解。 我的包裹看起来像这样:
package/
__init__.py
package.py (same name used here)
_someprivatestuff.py
io/
__init__.py
io.py
vis/
__init__.py
vis.py
拳头 __ init __。py 包含以下内容:
from .package import exception1
from .package import exception2
from .package import class1
from .package import class2
from .package import class3
异常和类位于package.py中。
现在,如果导入模块,则可以访问package.py中的所有其他函数以及此python文件中导入的模块:
import package
package.class1 # this should output 'package.class1'
>>> <class 'package.package.class1'>
package.package.someprivateclass # package.package is somehow accesible
>>> <class 'package.package.someprivateclass'>
答案 0 :(得分:0)
package.package
是一个模块,其中具有功能,因此您可以作为package.package.someprivateclass
来访问它们。仅仅是因为您已将某些名称从.package
导入到__init__.py
中,并不意味着您尚未导入的名称将被隐藏。