Pycharm使用創(chuàng)建directory和Python package的區(qū)別

通俗一點地解釋


Pycharm創(chuàng)建普通的directory和package時都是在硬盤上建立一個文件夾。但是建package時會在這個文件夾中自動地生成一個空的__init__.py文件朴皆。

Python的一個包是一個帶有特殊文件 __init__.py 的目錄撑蚌。__init__.py 文件定義了包的屬性和方法熬芜。其實它可以什么也不定義;可以只是一個空文件,但是必須存在暖庄。如果 __init__.py 不存在弊予,這個目錄就僅僅是一個目錄祥楣,而不是一個包,它就不能被導入或者包含其它的模塊和嵌套包汉柒。


來點高大上


對于Python而言误褪,有一點是要認識明確的,python作為一個相對而言輕量級的碾褂,易用的腳本語言(當然其功能并不僅限于此兽间,在此只是討論該特點),隨著程序的增長正塌,可能想要把它分成幾個文件嘀略,以便邏輯更加清晰,更好維護乓诽,亦或想要在幾個程序中均使用某個函數(shù)帜羊,而不必將其復制粘貼到所有程序中。

為了支持這一點鸠天,Python有一種方法將定義函數(shù)放在一個文件中讼育,并在腳本中使用它們,這樣的文件叫做模塊稠集,一個模塊中的定義可以被導入到其他模塊奶段,或者主模塊中。

簡單來說在python中模塊就是指一個py文件巍杈,如果我們將所有相關(guān)的代碼都放在一個py文件中忧饭,則該py文件既是程序由是模塊,但是程序和模塊的設(shè)計目的是不同的筷畦,程序的目的是為了運行词裤,而模塊的目的是為了其他程序進行引用刺洒。

Directory:

Dictionary在pycharm中就是一個文件夾,放置資源文件吼砂,對應于在進行JavaWeb開發(fā)時用于放置css/js文件的目錄逆航,或者說在進行物體識別時,用來存儲背景圖像的文件夾渔肩。該文件夾其中并不包含_ _ init.py_ _文件

Package(Python中將一個.py文件看作一個module):

對于Python package 文件夾而言因俐,與Dictionary不同之處在于其會自動創(chuàng)建_ _ init.py_ _文件。

簡單的說周偎,python package就是一個目錄抹剩,其中包括一組模塊和一個_ _ init.py_ _文件。目錄下具有init.py文件蓉坎,這樣可以通過from…import的方式進行.py文件的導入澳眷。


例子


如下通過幾個例子進行說明,如何進行module的導入蛉艾,目錄結(jié)構(gòu)如下:

假設(shè)file這個package是一個開源包钳踊,里面有一些現(xiàn)有的我們需要在one文件中使用的方法。

hello.py代碼:



class package():

? ? ? def Foo(self):

? ? ? ? ? ? print "hello world"class two():

? ??? def Foo2(self):

? ? ? ? ? ? print "hello Python"def write(str):

?print str


對于module的導入勿侯,個人認為有如下方式:


(1)形式:import module(將整個模塊全部導入)


import file.hello

o = file.hello.package() M氐桑可能同時import多個module,因此使用的方法需要說明是哪個module中 的方法

o.Foo()

file.hello.write("hello")#說明是file.hello這個module中的write方法


(2)from module import 需要用的類名或方法名


from file.hello import package,write

o = package() #已經(jīng)聲明了導入的package是file.hello這個module的助琐,因此不必再使用前綴

o.Foo()

write("hello")


(3)from package(包) import module


from image import hello

hello.write("hello")

o = hello.package()? #同樣可能導入了多個模塊祭埂,因此需要注明是哪個模塊的

o.Foo()



需要注意的是,可以從package中進行import弓柱,但是對directory無法進行import沟堡,想導入某個文件夾中的.py文件,必須有init.py文件矢空,在module導入之后就可以使用module中的類航罗,函數(shù),變量屁药。


注:以上內(nèi)容皆來自于網(wǎng)絡(luò)粥血,便于學習整理成冊!

點個贊那吧酿箭!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末复亏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缭嫡,更是在濱河造成了極大的恐慌缔御,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妇蛀,死亡現(xiàn)場離奇詭異耕突,居然都是意外死亡笤成,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門眷茁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炕泳,“玉大人,你說我怎么就攤上這事上祈∨嘧瘢” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵登刺,是天一觀的道長籽腕。 經(jīng)常有香客問我,道長纸俭,這世上最難降的妖魔是什么节仿? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮掉蔬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘矾瘾。我一直安慰自己女轿,他們只是感情好,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布壕翩。 她就那樣靜靜地躺著蛉迹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪放妈。 梳的紋絲不亂的頭發(fā)上北救,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音芜抒,去河邊找鬼珍策。 笑死,一個胖子當著我的面吹牛宅倒,可吹牛的內(nèi)容都是我干的攘宙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拐迁,長吁一口氣:“原來是場噩夢啊……” “哼蹭劈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起线召,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤铺韧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缓淹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哈打,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡塔逃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了前酿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片患雏。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖罢维,靈堂內(nèi)的尸體忽然破棺而出淹仑,到底是詐尸還是另有隱情,我是刑警寧澤肺孵,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布匀借,位于F島的核電站,受9級特大地震影響平窘,放射性物質(zhì)發(fā)生泄漏吓肋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一瑰艘、第九天 我趴在偏房一處隱蔽的房頂上張望是鬼。 院中可真熱鬧,春花似錦紫新、人聲如沸均蜜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽囤耳。三九已至,卻和暖如春偶芍,著一層夾襖步出監(jiān)牢的瞬間充择,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工匪蟀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留椎麦,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓材彪,卻偏偏與公主長得像铃剔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子查刻,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355