假设我有一个具有以下结构的包:
package-folder
|_ mypackage
|_ __init__.py
|_ module1.py
setup.py
其中__init__.py
为空且
module1.py
:
def do_stuff():
print('Did stuff.')
setup.py
包含用它生成包的常用上下文,可以与pip install -e pkgpath
一起安装在本地系统上。你知道吗
在script.py
中,我必须:
import mypackage as abbr
abbr.module1.do_stuff()
# output: Did stuff.
我想要的电话是:
abbr.do_stuff()
# output: Did stuff.
abbr.function()
调用module1.py之外的函数?需要更改哪些代码?你知道吗__init__.py
-文件,但我不知道如何修改。你知道吗package-folder
|_ mypackage
|_ __init__.py
|_ module1.py #with function do_stuff1()
|_ subpackage
|_module2.py #with function do_stuff2()
setup.py
电话应该是:
abbr.do_stuff1()
abbr.subpackage.do_stuff2()
而不是:
abbr.module1.do_stuff1()
abbr.subpackage.module2.do_stuff2()
你已经很接近答案了,你只需要从
__init__.py
导入方法。你知道吗您还可以添加特殊变量
__all__
,它是用户希望在该文件中找到的变量/函数/etc的列表。你知道吗__init__.py
@mypackage
__init__.py
@subpackage
编辑:
要使顶级包导入所有子包符号,可以将
__init__.py
@mypackage
更改为:这样您不仅可以调用
abbr.subpackage.do_stuuf2()
,还可以调用abbr.do_stuuf2()
。你知道吗相关问题 更多 >
编程相关推荐