包柠并,模塊詳解

python中的包和模塊富拗,首先是按照代碼的功能進(jìn)行整理整合,將相似功能的代碼/大量代碼 整理到一起 方便統(tǒng)一管理

模塊(module):python中每個python文件就是一個模塊(模塊名稱就是文件名稱)媒峡,每個python文件中葵擎,封裝類似功能的變量、函數(shù)签餐、類型等等,可以被其他的python模塊通過import關(guān)鍵字引入重復(fù)使用氯檐!

包(pakcage)(文件夾):包含多個python文件/模塊的文件夾,并且文件夾中有一個名稱為init.py的特殊聲明文件糯崎,那么這個文件夾就是一個包(模塊包)河泳,可以將大量功能相關(guān)的python模塊包含起來統(tǒng)一管理,同樣也可以被其他模塊通過import關(guān)鍵字引入重復(fù)使用封裝的模塊和代碼拆挥!

如何定義模塊:在工作目錄下創(chuàng)建一個自定義的文件夾,在該文件夾下創(chuàng)建一個utils.py文件惰瓜,該文件就是一個模塊汉矿,可在該模塊中定義各種工具變量、常量负甸、函數(shù)、類型等呻待。

如何定義包:
1.自動定義包
pycharm下右鍵單擊new選擇python package 可以自動創(chuàng)建一個包打月。里邊包含一個init.py
文件
2.手動定義包
定一個普通的文件夾,在文件夾下手動添加一個init.py文件

包與普通文件的區(qū)別:python包就是包含了init.py的特殊文件夾蚕捉。奏篙。普通的文件夾也是一種最簡單的人工約定的包,不過沒有init.py聲明的包的功能強(qiáng)大迫淹。

如何使用包與模塊
包和模塊的引入有兩個關(guān)鍵的語法
1.import
2.from import
關(guān)于導(dǎo)入自定義的包或模塊在pycharm中會報錯但是不影響運行的問題:右鍵單擊該項目---make directiory as --- sources root 就會解決報錯的問題秘通,原因不在詳說。

import 詳解
如何使用模塊中的數(shù)據(jù):
模塊.變量 模塊.函數(shù) 模塊.類型
import引入的包和模塊會自動從當(dāng)前文件夾中敛熬、系統(tǒng)環(huán)境變量PYTHONPATH中肺稀、以及系統(tǒng)的sys.path路徑中查詢是否存在該名稱的包/模塊
如果不存在,就會出現(xiàn)錯誤:no module named 'xxxxxx'

from import 有兩種引入方式:相對引入于絕對引入应民。先介紹相對引入
首先话原,相對引入本身是相對當(dāng)前正在操作的文件的路徑
同一級路徑使用符號:.
上一級路徑使用符號:..

  1. 模塊和包
    模塊:python中每個python文件都是一個獨立的模塊
    較少的夕吻、獨立的、功能近似的 多個變量繁仁、函數(shù)涉馅、類型的集合黄虱!
    包:包含多個python模塊的文件夾稚矿,包含一個特殊的init.py聲明文件
    包含多個模塊,具備強(qiáng)大功能的程序捻浦!

    包 & 文件夾 區(qū)別
    包:包含了一個init.py聲明文件[空文件晤揣、編寫代碼]
    文件夾:普通文件夾

     區(qū)別1:包可以更加有效的管理python模塊,文件夾只能作為默認(rèn)包進(jìn)行基本管理[包含文件]默勾!
     區(qū)別2:包和文件夾中引入對應(yīng)的模塊代碼的操作方式區(qū)別碉渡!
    
  2. import & from import
    包和模塊的引入
    (1) import
    #引入一個模塊
    import 模塊名稱
    #使用模塊中的數(shù)據(jù)
    模塊名稱.變量名稱
    模塊名稱.函數(shù)名稱
    模塊名稱.類型名稱

     # 引入一個包
     import 包名稱
     # 使用包中的數(shù)據(jù)
     包名稱.模塊名稱.變量名稱/函數(shù)名稱/類型名稱
    
     # 引入包中的某個模塊
     import 包名稱.模塊名稱
     # 使用包中的數(shù)據(jù)
     包名稱.模塊名稱.變量名稱/函數(shù)名稱/類型名稱
    
     # ERROR:引入包中的某個變量
     import 包名稱.模塊名稱.變量名稱
    

    (2) from import語法
    # (相對)引入包
    from . import 包名稱 [必須在init.py中,主動通過from . import引入需要的模塊]
    # 使用數(shù)據(jù)
    包名稱.模塊名稱.變量名稱/函數(shù)名稱/類型名稱

    # (相對)引入包中的模塊
    from .包名稱 import 模塊名稱
    # 使用數(shù)據(jù)
    模塊名稱.變量名稱/函數(shù)名稱/類型名稱
    
    # (相對) 引入包中的模塊中的數(shù)據(jù)
    from .包名稱.模塊名稱 import  變量/函數(shù)/類型
    # 使用數(shù)據(jù):當(dāng)成當(dāng)前文件中的數(shù)據(jù)進(jìn)行數(shù)據(jù)
    變量名稱/函數(shù)名稱/類型名稱
    
  3. 相對引入 & 絕對引入

    相對引入:相對當(dāng)前文件路徑母剥,參照父級文件路徑
    |-- demo/
    |-- utils.py
    |-- main.py [from . import utils]

    運行:添加參照路徑:python -m demo.main
    運行過程中滞诺,在main.py中找到相對路徑的utils.py

    絕對引入:針對包/項目/模塊,直接引入的方式
    |-- demo/
    |-- users/
    |-- init.py
    |-- tools.py
    |-- utils.py
    |- main.py
    [import utils]
    [from users import tools]
    [絕對引入:查詢路徑]
    [當(dāng)前文件夾|PYTHONPATH|sys.path]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末环疼,一起剝皮案震驚了整個濱河市习霹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炫隶,老刑警劉巖淋叶,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異伪阶,居然都是意外死亡煞檩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門栅贴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來斟湃,“玉大人,你說我怎么就攤上這事檐薯∧” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵坛缕,是天一觀的道長墓猎。 經(jīng)常有香客問我,道長赚楚,這世上最難降的妖魔是什么毙沾? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮宠页,結(jié)果婚禮上搀军,老公的妹妹穿的比我還像新娘膨俐。我一直安慰自己,他們只是感情好罩句,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著敛摘,像睡著了一般门烂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上兄淫,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天屯远,我揣著相機(jī)與錄音,去河邊找鬼捕虽。 笑死慨丐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泄私。 我是一名探鬼主播房揭,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晌端!你這毒婦竟也來了捅暴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤咧纠,失蹤者是張志新(化名)和其女友劉穎蓬痒,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體漆羔,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡梧奢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了演痒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片亲轨。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嫡霞,靈堂內(nèi)的尸體忽然破棺而出瓶埋,到底是詐尸還是另有隱情,我是刑警寧澤诊沪,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布养筒,位于F島的核電站,受9級特大地震影響端姚,放射性物質(zhì)發(fā)生泄漏晕粪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一渐裸、第九天 我趴在偏房一處隱蔽的房頂上張望巫湘。 院中可真熱鬧装悲,春花似錦、人聲如沸尚氛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阅嘶。三九已至属瓣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間讯柔,已是汗流浹背抡蛙。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留魂迄,地道東北人粗截。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像捣炬,于是被迫代替她去往敵國和親熊昌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容