Python_工程的組織結(jié)構(gòu)

一、Python項目的組織結(jié)構(gòu):包酥宴、模塊啦吧、類(函數(shù)、變量)

包:可以理解為文件夾

模塊:.py文件

類:包含函數(shù)拙寡、變量授滓。函數(shù)和變量算作類里的具體組恒部分,類的特性

二倒庵、包與模塊

1. 命名空間:包名.模塊名 (區(qū)分兩個包下同名的模塊)

2. 包下面還可以有子包褒墨,子包可以與模塊同級

3. 包可以理解為文件夾,但文件夾不一定是包擎宝,若要使文件夾表現(xiàn)為包郁妈,必須在這個文件夾下新建一個名為“__init__.py”的文件。里面內(nèi)容可以為空绍申,不能普通的進(jìn)行命名空間調(diào)用

三噩咪、模塊導(dǎo)入

(一)import?導(dǎo)入模塊語法:

1. import 模塊名

注意:(1)使用模塊前先導(dǎo)入模塊后再使用

????????????(2)使用導(dǎo)入模塊中的變量或函數(shù)的格式:模塊名.變量或函數(shù)

2. 如果結(jié)構(gòu)不同層級顾彰,要用命名空間解決

其中運行后會自動生成一個.pyc文件,為python的自解碼文件

3. import 模塊名 as 名稱

可以解決命名空間過長的問題

eg:import ?t.c7 ?as ?m

print ( m.a)

(二)from 模塊 import a(變量)或 def(函數(shù))

1. 引入

2. 可以用 from ?t.c7 ?import ?* 胃碾,代表引此模塊找那個所有的成員(但是引入不明確)

改進(jìn):在c7模塊中第一行聲明“__all__ = [ a, b ]”涨享,指定引入的變量。

其中“__all__ = [ a, b ]”稱為模塊的內(nèi)置變量或內(nèi)置屬性

在c7中加入?“__all__ = [ a, b ]”
因為沒有指定引入d仆百,所以報錯

附加:

1. 設(shè)置 files.exclude 來隱藏相關(guān)文件和文件夾

2. 代碼換行最好用()厕隧,或者在換行末尾加上反斜杠\ (不推薦)

問題!6碇堋吁讨!

運行程序沒有生成 "__pycache__.py" 文件?峦朗?建丧?

也隱藏不了?波势?翎朱?


四、__init__.py的作用

1. 當(dāng)導(dǎo)入包時尺铣,python會自動執(zhí)行 "__init__.py" 里的代碼拴曲,可作包和模塊的初始化

2. __all__?

3.?可以作批量導(dǎo)入※

五、包與模塊的幾個常見錯誤

?1. 包和模塊不會被重復(fù)導(dǎo)入迄埃。

2. 避免循環(huán)導(dǎo)入

3. 導(dǎo)入模塊時疗韵,python會執(zhí)行模塊里的所有代碼

六、模塊內(nèi)置變量

1. dir()函數(shù):返回模塊的所有變量名稱

2. __****__:表示內(nèi)置變量

eg:__name__ 表示命名空間侄非;__package__ 表示包名稱蕉汪;__doc__ 表示模塊注釋;__file__ ?表示模塊路徑

異常信息

Traceback:錯誤堆棧信息逞怨,表示程序執(zhí)行到錯誤的位置

TypeError:錯誤信息的描述

七者疤、入口文件和普通模塊內(nèi)置變量的區(qū)別

如果一個 .py 文件被當(dāng)做一個應(yīng)用程序的入口:

1. 它的名稱不再是本身模塊的名稱,而是被強制更改為 "__main__"

2. 它不屬于任何包

3. file內(nèi)置變量不會像普通模塊一樣顯示絕對路徑叠赦,它所顯示的值也是不確定值驹马,和執(zhí)行命令所在的目錄有關(guān)(詳情見第二張圖)

※ Python的入口文件和普通導(dǎo)入的模塊文件是有差異的

八、__name__

1. dir() 函數(shù)查看相關(guān)變量

2. 讓python腳本成為一個普通模塊被其他應(yīng)用程序調(diào)用除秀,也可以讓自己成為一個可執(zhí)行文件

3. 有時候一個模塊既想被作為一個可執(zhí)行文件糯累,又想成為一個普通的模塊。

當(dāng)它們處于兩種不同的情形下時册踩,有些邏輯處理時不相同的泳姐,所以如果想知道此時模塊時處于什么情形,可以使用如下代碼

if ?__name__ == '__main__': ? ?pass暂吉,來判斷當(dāng)前模塊是否是一個入口文件

4. python中的普通模塊必須有一個包胖秒,當(dāng)想要把一個可執(zhí)行文件當(dāng)做一個普通模塊運行時缎患,可以使用 -m 參數(shù)

如:python -m 命名空間.模塊名(package_name.module_name) (如下圖)

注:此時若當(dāng)做普通模塊,必須包括 包名/命名空間??? ??

python ?seven\c15.py???

九阎肝、相對導(dǎo)入和絕對導(dǎo)入

頂級包與入口文件 main.py 的位置有關(guān)挤渔,與 main.py 同級的包就是該包下所有模塊的頂級包。而對于入口文件來說不存在包的概念风题。

絕對導(dǎo)入:從頂級包到被導(dǎo)入模塊名稱的完整路徑判导。import 和 from ... import ...

相對導(dǎo)入:“ . ?.. ?... ” 來表示相對路徑。一個點表示當(dāng)前包俯邓,兩個點表示上一級包...骡楼。from ... import ...

注意:

1. import 不支持相對導(dǎo)入,只能使用 from ... import ... 格式實現(xiàn)相對導(dǎo)入

2. 入口文件中不能使用相對導(dǎo)入稽鞭,因為它沒有包的概念

3. 使用相對導(dǎo)入不要超出頂級包,入口文件同級的都不能使用相對導(dǎo)入(圖1)

4. 實在想用相對路徑導(dǎo)入引镊,此時把入口文件當(dāng)做一個模塊來執(zhí)行朦蕴,用 python -m demo.main(圖2)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市弟头,隨后出現(xiàn)的幾起案子吩抓,更是在濱河造成了極大的恐慌,老刑警劉巖赴恨,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疹娶,死亡現(xiàn)場離奇詭異,居然都是意外死亡伦连,警方通過查閱死者的電腦和手機(jī)雨饺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惑淳,“玉大人额港,你說我怎么就攤上這事∑缃梗” “怎么了移斩?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绢馍。 經(jīng)常有香客問我向瓷,道長,這世上最難降的妖魔是什么舰涌? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任猖任,我火速辦了婚禮,結(jié)果婚禮上舵稠,老公的妹妹穿的比我還像新娘超升。我一直安慰自己入宦,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布室琢。 她就那樣靜靜地躺著乾闰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盈滴。 梳的紋絲不亂的頭發(fā)上涯肩,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機(jī)與錄音巢钓,去河邊找鬼病苗。 笑死,一個胖子當(dāng)著我的面吹牛症汹,可吹牛的內(nèi)容都是我干的硫朦。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼背镇,長吁一口氣:“原來是場噩夢啊……” “哼咬展!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瞒斩,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤破婆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后胸囱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祷舀,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年烹笔,在試婚紗的時候發(fā)現(xiàn)自己被綠了裳扯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡箕宙,死狀恐怖嚎朽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情柬帕,我是刑警寧澤哟忍,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站陷寝,受9級特大地震影響锅很,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜凤跑,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一爆安、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仔引,春花似錦扔仓、人聲如沸褐奥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撬码。三九已至,卻和暖如春版保,著一層夾襖步出監(jiān)牢的瞬間呜笑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工彻犁, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留叫胁,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓汞幢,卻偏偏與公主長得像驼鹅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子森篷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

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