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