Python學習之Python中包的管理


python包的結構就是文件夾結構,如要想讓以下文件夾結構變成python包結構

只需在每個文件夾下添加一個__init__.py。

python  __init__.py在包里起一個比較重要的作用
要弄明白這個問題,首先要知道,python在執行import語句時,到底進行了什么操作,按照python的文檔,它執行了如下操作:
1步,創建一個新的,空的module對象(它可能包含多個module);
2步,把這個module對象插入sys.module中
3步,裝載module的代碼(如果需要,首先必須編譯)
4步,執行新的module中對應的代碼。

也就是說在導入一個包時,python首先去這個包下加載__init__.py.根據這個__init__.py里面規定的導入情況,再去導入其他模塊。

比如你想加載exer1.py模塊,你只需在__init__.py里面寫入from root.exer1.py import * 就能導入exer1.py模塊.

需要注意的是:

1,引入同級模塊需要顯示導入即用from ... import ... ,用import ... 會報錯。且必須要用 ‘.’明確他們的層級關系

2,引入子包需要用import ...引入,且必須要用 ‘.’ 明確他們的層級關系

假如在exer1下有個addf 函數

在交互模式下,想調用exer1下的函數,首先

import root;然后

root.addf();就行了。

如果要在exer11模塊下引入同級模塊,只需在exer12中添加:

import root.pack1.exer12 或者 from root.pack1.exer12 import *

如果要在exer1模塊下引入子包下的其他模塊,只需在exer1中添加:

import root.pack1.exer11 或者 from root.pack1 import exer11

另外還有一個pythonPath 這個知識點:

pythonpath 就是python在裝載模塊時加載路徑,自已可以設置。

當你想引入其他磁盤下的py文件,你就需要往pythonPath 中設置路徑。

首先導入import sys,然后

sys.path.insert(0,路徑);或者sys.path.append('路徑');

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM