python-模組入門二(模組迴圈匯入,區分python檔案的兩種用途,模組搜尋路徑,軟體開發的目錄規範)
一、模組的迴圈匯入問題
run.py
# import m1 # 第一次匯入
m1.py
# 錯誤示範 ``` print(`正在匯入m1`) from m2 import y #第一次匯入m2
x=`m1` ```
m2.py
# 錯誤示範 ``` print(`正在匯入m2`) from m1 import x y=`m2` ```
解決方案:
一:把迴圈匯入的語句放到名字定義的後面
# m1.py
# y=`m2` # from m1 import x
# m2.py # print(`正在匯入m2`) # # y=`m2` # from m1 import x
二:將迴圈匯入的語句放到函式內
# m1.py print(`正在匯入m1`) def f1(): from m2 import y,f2 #第一次匯入m2 print(`m1.f1---->y: `,y) f2() x=`m1`
# m2.py
def f2(): from m1 import x print(`m2.f2--->x: `,x) y=`m2`
二、區分python檔案的兩種用途
當檔案被執行時__name__==`__main__`
當檔案被匯入時__name__==`模組名`
if __name__ == `__main__`: f1() f2()
三、模組的搜尋路徑
模組搜尋路徑的優先順序:1.記憶體中已經載入過的,2.內建模組,3.sys.path第一個值是當前執行檔案所在的資料夾
環境變數是以當前執行檔案為準的.
注: 所有被匯入的模組參照環境變數sys.path都是以執行檔案為準的.被匯入的模組再去匯入其它模組,也是參照sys.path
四、絕對匯入與相對匯入
絕對匯入:以執行檔案的sys.path為起始位置開始匯入,稱之為絕對匯入
優點:執行檔案與被匯入的模組中都可以用
缺點:所有匯入都是以sys.path為起始點,匯入麻煩
相對匯入:
符號:一個”.”代表當前所在資料夾,”..”代表上一級資料夾,”…”代表上一級的上一級資料夾
優點:匯入更加簡單
缺點:只能在匯入包中的模組時才能使用,不能在執行檔案中使用
注意: 執行檔案中只能用絕對匯入
五、軟體開發的目錄規範
規範化的目錄結構能更好的控制程式,讓程式具有更高的可讀性
1.可讀性高 2.可維護性高
通常一個專案都會有的目錄如下:
專案名/
| — bin/ #程式啟動指令碼/程式入口
| | — start.py
|
| — conf/ #配置檔案
| | –settings.py
| — core/ #業務邏輯
| | –src.py
| — db/
| | –資料庫檔案
| — lib/ #第三方庫
| | –common.py
| — log/ #日誌
| | –transaction.log
README #說明文件
目錄後繼會繼續補充!
焚膏油以繼晷,恆兀兀以窮年。
相關文章
- python大型專案開發規範_學習Python模組匯入機制與大型專案的規範Python
- JavaScript 模組的迴圈載入JavaScript
- Python入門(二十六):檔案模組(os模組與shutil模組)Python
- python中如何新增模組匯入路徑?Python
- Python新增模組載入路徑Python
- 【python3】匯入zip 檔案裡的模組Python
- Python種匯入模組的三種方式總結Python
- Python 模組匯入方式Python
- python之匯入模組的方法Python
- Python-檔案的匯入Python
- 前端模組化之迴圈載入前端
- [python]python環境變數以及模組搜尋路徑Python變數
- python 入門學習---模組匯入三種方式及中文註釋Python
- require.js載入非規範的模組UIJS
- 淺談python模組的匯入操作Python
- 「Python實用秘技12」像匯入模組一樣匯入ipynb檔案Python
- Python入門—time模組Python
- Python-模組Python
- nodejs幾種檔案路徑及path模組NodeJS
- thinkphp 5自動生成模組目錄的兩種方式PHP
- 解剖Nginx·模組開發篇(4)模組開發中的命名規則和模組載入與執行流程Nginx
- python如何匯入自定義模組Python
- py模組匯入示例
- 模組匯入小結
- Python Requests模組快速入門Python
- TypeScript入門-模組TypeScript
- Python中匯入模組中的物件常見的三種方式!Python物件
- django實現分頁的模組(匯入即可用)Django
- 解剖Nginx·模組開發篇(6)配置檔案config入門Nginx
- ES模組化的匯入和匯出
- Python 包、模組、類以及程式碼檔案和目錄的一種管理方案Python
- Python模組學習:glob 檔案路徑查詢Python
- python3匯入paramiko模組Python
- C#快速入門教程(24)—— 路徑、目錄與檔案C#
- CommonJS和ES6模組迴圈載入處理的區別JS
- Python:檢視已安裝模組 和 檢視可匯入模組Python
- odoo 開發入門教程系列-模組互動Odoo
- es6模組化的匯入匯出