PyCharm中New Directory 和 New Python Package的區(qū)別解析
PyCharm中New Directory 和 New Python Package的區(qū)別
如題,這是一個很簡單也很基礎的問題,先看不同操作的結果有什么不同
結果1:項目下出現(xiàn)了一個空“文件夾”
結果2:項目下多了一個“Python Package”,該package下包含了一個“__init__.py”文件,該py文件是空的
如果把該py文件刪掉后,package也就變成了directory
所以什么是__init__.py
在 Python 中,一個包含 __init__.py
文件的目錄被視為一個 Python 包。這個 __init__.py
文件的存在有幾個重要的意義和作用。
__init__.py的作用和功能
1.標識包:
__init__.py
文件的主要作用是標識目錄為一個 Python 包。即使這個文件為空,它的存在也允許 Python 正確識別并處理該目錄下的模塊。
2.初始化代碼:
- 當導入一個包時,
__init__.py
文件中的代碼會首先被執(zhí)行。這意味著你可以在這個文件中放置一些初始化代碼,例如包級別的變量初始化、特定的包初始化操作等。
3.控制可導入的模塊:
- 在 Python 3.3 之前,
__init__.py
文件還被用來定義包內(nèi)哪些模塊是對外可見的(即可以被導入的)。這是通過在__init__.py
文件中指定__all__
列表來實現(xiàn)的。盡管在新版 Python 中這不再是必需的,但仍然可以用來明確指定包對外公開的接口。
4.命名空間的組織:
__init__.py
文件也用于組織大型代碼庫的命名空間。通過在這個文件中導入子模塊和子包,你可以使得外部對包的使用更加方便和有序。
5.兼容:
- 盡管從 Python 3.3 開始,隱式的命名空間包允許創(chuàng)建沒有
__init__.py
的包,但為了向后兼容,許多項目仍然保持使用__init__.py
文件。
6.包的分發(fā)和安裝:
- 在創(chuàng)建可分發(fā)的包時(例如使用 setuptools),
__init__.py
文件是定義包內(nèi)容和結構的重要組成部分。
綜上,一些簡單的細節(jié)。。。
參考:知識點總結主要來自chatGPT 4
pycharm中創(chuàng)建的directory與python package的區(qū)別
在pycharm中,創(chuàng)建的directory(目錄)與python package的區(qū)別
python package
這是一個特殊的目錄,因為在創(chuàng)建該python package的時候,系統(tǒng)會自動地生成一個py文件, init.py
init.py: 文件定義了包的屬性和方法。
init.py:雖然定義了包的屬性和方法,但是,在該文件里可以什么也不用定義,可以只是一個空文件,但是必須存在(存在就說明這是一個包)。
可以為空但必須存在:如果 init.py不存在,這個目錄就僅僅是一個目錄,而不是一個包,它就不能被導入或者包含其它的模塊和嵌套包。
directory在pycharm中就是一個文件夾
可以用于放置資源文件,類似于在電腦桌面右鍵新建一個文件夾一樣,該文件夾其中并不包含__ init.py_ 文件
到此這篇關于PyCharm中New Directory 和 New Python Package的區(qū)別的文章就介紹到這了,更多相關PyCharm Directory 和Python Package區(qū)別 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- pycharm設置當前工作目錄的操作(working directory)
- pycharm 中mark directory as exclude的用法詳解
- Python之site-packages目錄的位置
- python第三方包安裝路徑site-packages下.libs作用詳解
- python pip安裝的包放在哪個目錄(site-packages目錄的位置)
- Python--模塊(Module)和包(Package)詳解
- 詳解python如何引用包package
- 淺談Python中文件夾和python package包的區(qū)別
- python 3.74 運行import numpy as np 報錯lib\site-packages\numpy\__init__.py
相關文章
python中urllib.unquote亂碼的原因與解決方法
這篇文章主要給大家介紹了python中urllib.unquote亂碼的原因與解決方法,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友可以參考學習,下面跟著小編一起來學習學習吧。2017-04-04Python實現(xiàn)動態(tài)循環(huán)輸出文字功能
這篇文章主要介紹了Python實現(xiàn)動態(tài)循環(huán)輸出文字功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-05-05PyTorch加載模型model.load_state_dict()問題及解決
這篇文章主要介紹了PyTorch加載模型model.load_state_dict()問題及解決,具有很好的參考價值,希望對大家有所幫助。2023-02-02