名词解释:
模块:一个程序文件
包:相当于一个类库,打包发布后相当于c#中的dll, 包中可包括若干个模块,比如main.py就是一个模块,对于test2文件下的所有模块组成一个包
对于一个包而言,注定是要被其它模块进行引用,所以需要一件初始化信息,比如包的路径,这些信息都是依赖包下的__init__py文件中,对于包下的子包(命名空间下的子命名空间)每一级都会存在__init__py文件
具体可参照下图
下面讲述如何在代码中去引用模块或者包
1:在主程序main.py中引用provide.py模块,并且执行其中的方法
import provide;
provide.stringProvider("hello");
或者
from provide import stringProvider;
stringProvider("hello");
或者
from provide import stringProvider;
a=stringProvider;
a("hello");
2:在主程序main.py中引用test2类库下的模块,并且执行其中的方法
我们要访问test2下的tester 中的info.py模块的方法,因为类库跟模块不在同一个目录中,所以我们必须要加入一个上层路径
关于访问不同目录的方法有许多种,可以参照http://python.usyiyi.cn/python_343/tutorial/modules.html#packages-in-multiple-directories
代码为
import sys;
sys.path.append("..");
因此可以向上面一样进行引用
from test2.tester import info;
info.printinfo();
如果写为import test2.tester.info;
则方法的引用也要同样写完整:test2.tester.info.printinfo();