補(bǔ)充
補(bǔ)充jupyter代碼和終端操作代碼.png
模塊預(yù)編譯
當(dāng)import時(shí), python會(huì)試圖去編譯出pyc文件來屋彪。
pyc是被編譯過的py文件所宰,加載pyc文件可以跳過語法解析過程
當(dāng)py日期新于pyc時(shí), 重新生成pyc撼班。所以日期紊亂可能導(dǎo)致執(zhí)行老代碼歧匈。
在Python3(3.2以后)中,會(huì)在當(dāng)前目錄下生成pycache目錄砰嘁,來緩存pyc文件。
這樣可以避免多個(gè)Python解釋器無法互相載入對(duì)方的pyc文件勘究。
紀(jì)律1: 大版本不交叉使用
作為腳本運(yùn)行時(shí)矮湘,不會(huì)生成pyc文件, 因?yàn)闆]有import
_name屬性 模塊有一個(gè)屬性口糕, _name.當(dāng)這個(gè)屬性為'_mian__'時(shí)缅阳, 說明當(dāng)前模塊被作為腳本運(yùn)行。模塊被作為以腳本運(yùn)行時(shí), 不生成pyc文件(因?yàn)椴皇莍mport)
_name_ == '_main_'是Python的main函數(shù)入口十办。并非說秀撇,加入這句才能使用python xxx.py來執(zhí)行,而是說向族,這里可以判斷呵燕,當(dāng)前是否是直接被python直接調(diào)用執(zhí)行。
main 文件模式寫法
- 第一行:作為腳本需要的
- 第二行: 當(dāng)有中文時(shí)需要的
- 第三行: docstring
下圖為開源py文件
iShot2020-03-13下午02.25.06.png
package
- 從組織結(jié)構(gòu)上說件相, package是比modules更大一級(jí)的結(jié)構(gòu)再扭。 一個(gè)package里可以包含多個(gè)modules和packages。 一般一個(gè)package是一個(gè)獨(dú)立目錄夜矗, 里面有init.py 文件 這個(gè)文件指明了如何加載整個(gè)package泛范。
- package是基于module的
- 對(duì)于Python package 文件夾而言,與Dictionary不同之處在于其會(huì)自動(dòng)創(chuàng)建_ _ init _ .py文件紊撕。 簡(jiǎn)單的說疲吸,python package就是一個(gè)目錄,其中包括一組模塊和一個(gè) _ init__.py文件咖气。
下圖為某開源python項(xiàng)目目錄
可通過目錄理解package.png