通俗的講之前我們學序列化模組時,有個json 它其實是乙個資料夾(裡面有很多py檔案),應該就算是乙個包;
然後匯入包的時候,.前面一定是乙個包名,然後可以有兩種方式import 包名 或者 from 包 import 模組 (這種匯入方式 包那塊可以有. 但是import 後面必須是乙個變數名,絕對不能有.)
首先建立一系列資料夾(包)和檔案(py檔案 模組)
import執行結果:osos.makedirs(
'glance/api
') #
使用os.makedirs('filename1/filename2')建立資料夾
os.makedirs('
glance/cmd')
os.makedirs(
'glance/db')
l= #
l中存放的是一系列檔案控制代碼
glance/__init__.py
','w'))
'glance/api/__init__.py
','w'))
'glance/api/test1.py
','w'))
'glance/api/test2.py
','w'))
'glance/cmd/__init__.py
','w'))
'glance/cmd/test1.py
','w'))
'glance/db/__init__.py
','w'))
'glance/db/test1.py
','w'))
map(lambda f :f.close(), l) # 利用map()函式
主要是挨個從放著檔案控制代碼的列表l中依次取值,然後傳給lambda函式 關掉該檔案
然後在api資料夾下的test1.py test2.py 檔案,cmd資料夾下的test1.py 檔案 和db資料夾下的test1.py 下面寫相應的print()語句 或者定義函式~
然後進行各種方式的匯入:
import或者這種方式:glance.api.test1
glance.api.test1
import或者:glance.api.test1 as test
test
from glance.api import執行結果:test1
test1
再來看一下test2.py 的內容:
然後我們匯入:
from glance.api import或者:test2
test2.func()
from glance.api.test2 import執行結果:func
func()
然後其他資料夾(包)的py檔案(模組)的匯入都跟上面的類似;
接下倆我們有乙個新的需求就是在test.py(與glance資料夾位於同一級目錄)中只寫 import glance 就可以使用glance.api.test1 執行test1.py 檔案 或者glance.api.test2.func()就可以執行api下面的test2.py中的func()函式~
這樣應該怎麼操作呢?
我們需要明確一點:匯入包時,都是自動會執行該包下面的__init__.py檔案!!!
先來驗證一下這個操作:
然後我們匯入 glance模組,看是否會執行glance包下面的__init__.py檔案中的內容:
我們先來看一下,在test.py中檢視模組路徑是什麼樣的:
執行結果:
所以相當於day06資料夾其實就是類似於根目錄的樣子~,不知道這樣說對不對,反正就是test.py是在day06資料夾下嘛,所以相當於它的根目錄直接就是day06 ,就是在test.py中匯入模組時,優先從da'y06這個目錄下面找有沒有該模組,然後我們繼續:
首先在glance包下面的__init__.py中寫:
然後在 api 下面的__init__.py中:
另外兩個也一樣:
進行完上面的操作之後
當我們在test.py中匯入glance後,我們就可以 直接拿著這個包名進行操作下面的任何乙個檔案了:
import執行結果:glance
glance.api.test1
glance.api.test2.func()
#api下面的test2.py中定義了乙個函式func
glance.cmd.test1
glance.db.test1
所以匯入包的時候需要格外注意~
另外,當你直接匯入py檔案或者通過包.包 匯入檔案(只要最後匯入的是py檔案 ---模組)匯入的那一刻就會執行該py檔案的內容;
但是當你最後匯入的是包時,它只會執行這個包下面的__init__.py這個是自動執行的~
day21 學習筆記
乙個python檔案有兩種用途 1.被當做程式執行 2.被當做模組匯入 二者的區別 ps name main import匯入模組在使用時必須加上字首 模組.優點 肯定不會與當前空間中名字衝突 缺點 顯得麻煩 from模組名import函式名 函式名是在當前位置的全域性變數,但是指向的記憶體位址是模...
day21 學習總結
string s new string 建立乙個空的字串序列 string s new string hello 建立乙個內容為 hello 的字串 string s hello 建立乙個內容為 hello 的字串 string s new string char chars 通過字元陣列建立乙個字...
python自動化學習筆記之DAY21
cookie 1 cookie與session cookie出現原因 由於http協議無法保持狀態,但是在認證的環境裡面,需要保持狀態,因此產生了cookie cookie工作原理 由伺服器產生內容,瀏覽器收到請求後儲存在本地,當瀏覽器再次訪問時,瀏覽器會自動帶上cookie,伺服器會通過cooki...