python学习之模块&包的引用

时间:2021-09-25 00:31:51

名词解释:

模块:一个程序文件

包:相当于一个类库,打包发布后相当于c#中的dll, 包中可包括若干个模块,比如main.py就是一个模块,对于test2文件下的所有模块组成一个包

对于一个包而言,注定是要被其它模块进行引用,所以需要一件初始化信息,比如包的路径,这些信息都是依赖包下的__init__py文件中,对于包下的子包(命名空间下的子命名空间)每一级都会存在__init__py文件

具体可参照下图

python学习之模块&包的引用

下面讲述如何在代码中去引用模块或者包

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();