python __init__.py檔案和導包總結
import也是一門學問~
匯入方式
import
from xxx import yyy__init__.py的作用
把某一個目錄變成一個包,
使得其他模組使用 包.包中的某一模組/函式/變數/類 這種方式時可用__init__.py什麼時候有用?
如果某一個目錄在後期匯入使用時只是作為中間目錄銜接使用,則可以不加__init__.py,
如果某個目錄後期會被直接或間接顯示地作為一個包匯入並被使用,那麼必須必須必須要加__init__.py,並且__init__.py中的內容會影響匯入的內容
每一個目錄都是可以被import的
如果一個目錄下沒有__init__.py,那麼在import這個目錄時,並不會報錯,只會以這個目錄名建立一個namespace,裡面什麼都沒有,沒有使用價值 module `name` (namespace)
然而當目錄下建立__init__.py後這個目錄就可以成為一個包 module `name` from `/Users/miechongdaxia/測試/test/name/__init__.py`
在pycharm下都以絕對路徑來引用包或者模組
不要用 . 操作符,尤其是用from import這種方式,import一般直接匯入外層目錄作為包,而from import會匯入內層目錄中的包或者模組
python查詢模組/包的路徑
sys.path的值就是路徑
哪些東西可以被直接import?
- 模組檔案(.py檔案)
- C或C++擴充套件(已編譯為共享庫或DLL檔案)
- 目錄/包(包含多個模組,不一定要有__init__.py,具體差別看第四點)
- 內建模組(使用C編寫並已連結到Python直譯器中)
兩種匯入方式的區別
from import 可以匯入模組中的函式/變數/類等
import則不行,匯入的不是模組就是包目錄,無法細化到函式/變數/類等- 如果一個目錄需要作為一個包使用,一定要在目錄下建立__init__.py,並且在裡面寫好可以匯入的模組,不然包目錄可以匯入,但是無法使用!!!!!
python中的__init__.py檔案和導包總結
相關文章
- python----之_init_檔案以及導包Python
- python 檔案操作的基礎總結Python
- Python中列已安裝包和requirements.txt檔案PythonUIREM
- Python檔案操作方法大總結Python
- Python: __init__.py 作用Python
- 使用sed 命令查詢和替換檔案中的字串的方法總結字串
- Linux中檔案/檔案系統的壓縮、打包和備份總結(基於rhel7)Linux
- Python製作egg檔案包Python
- python 解決讀取檔案時格式不支援的總結Python
- Python常用配置檔案ini、json、yaml讀寫總結PythonJSONYAML
- python檔案操作-讀寫刪除複製總結Python
- 【ASM】ASM資料檔案和OS檔案(FILESYSTEM)轉移方法總結ASM
- MyBatis配置檔案總結MyBatis
- 總結java中建立並寫檔案的5種方式Java
- Linux大檔案重定向和管道的效率對比總結Linux
- Java中atomic包中的原子操作類總結Java
- Springboot 獲取jar包中的檔案Spring BootJAR
- Android 關於 so 檔案的總結Android
- python的檔案和異常Python
- sqlserver關於filestream檔案流、filetable檔案表的總結SQLServer
- Spring Boot 配置檔案總結Spring Boot
- PHP檔案包含小總結PHP
- Python中的檔案讀寫Python
- rpm包的校驗和檔案讀取
- 使用awk和sed獲取檔案奇偶數行的方法總結
- Godot 4.0 檔案系統特性的總結Go
- Java專案中MongoDb學習和使用總結JavaMongoDB
- 夯實Java基礎系列5:Java檔案和Java包結構Java
- 檔案上傳漏洞總結(全)
- C#讀寫檔案總結C#
- Python分享之路徑與檔案 (os.path包, glob包)Python
- Python標準庫04 檔案管理 (部分os包,shutil包)Python
- Python 中的閉包和自由變數Python變數
- 使用Kimi+Markmap總結檔案內容生成思維導圖原創
- 關於JS的物件導向的思考和總結JS物件
- Python中的檔案的讀寫操作Python
- Headline 專案總結中
- Python 分發包中新增額外檔案Python