名詞解釋:
模塊:一個程序文件
包:相當於一個類庫,打包發布后相當於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();