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 中的閉包總結Python
- Python中的閉包總結Python
- python----之_init_檔案以及導包Python
- python的__init__.pyPython
- python 檔案操作的基礎總結Python
- Python中列已安裝包和requirements.txt檔案PythonUIREM
- Python: __init__.py 作用Python
- Python檔案操作方法大總結Python
- 使用sed 命令查詢和替換檔案中的字串的方法總結字串
- Linux中檔案/檔案系統的壓縮、打包和備份總結(基於rhel7)Linux
- 總結java中建立並寫檔案的5種方式Java
- 關於控制檔案的總結
- 解壓tar包中的指定檔案
- MyBatis配置檔案總結MyBatis
- 檔案路徑總結
- Htaccess檔案用法總結
- Java中atomic包中的原子操作類總結Java
- 【ASM】ASM資料檔案和OS檔案(FILESYSTEM)轉移方法總結ASM
- 10.2.3 python檔案附加導致的迷案Python
- python 解決讀取檔案時格式不支援的總結Python
- python檔案操作-讀寫刪除複製總結Python
- python導包注意Python
- JavaIO 總結筆記 IO簡介和File檔案JavaAI筆記
- 安全檔案和大物件開發手冊總結物件
- sqlserver關於filestream檔案流、filetable檔案表的總結SQLServer
- Python製作egg檔案包Python
- PHP檔案包含小總結PHP
- 密碼檔案資訊總結密碼
- oracle 檔案型別總結Oracle型別
- Java專案中MongoDb學習和使用總結JavaMongoDB
- Python中的檔案讀寫Python
- Python常用配置檔案ini、json、yaml讀寫總結PythonJSONYAML
- JSP中的TAG檔案和TLD檔案JS
- Linux大檔案重定向和管道的效率對比總結Linux
- 使用awk和sed獲取檔案奇偶數行的方法總結
- NFS網路檔案共享服務的配置和排錯總結NFS
- 關於JS的物件導向的思考和總結JS物件
- Python 中的閉包和自由變數Python變數