2018-08-13

模塊和包的定義

模塊:python中每個(gè)文件都是一個(gè)獨(dú)立的模塊
       獨(dú)立的,較少的榆芦,功能近似的 多個(gè)函數(shù) 變量 類型的集合
  模塊中的測(cè)試代碼可以包含在 if __name__ == “__main__”: 
     語句塊中症昏,這樣不會(huì)再其他模塊引入時(shí)執(zhí)行這些測(cè)試代碼
一個(gè)標(biāo)準(zhǔn)模塊的定義方式【模塊名稱:見名知意】

包:包含多個(gè)python模塊文件夾,包含一個(gè)__init__.py聲明文件
     包含多個(gè)模塊  具備強(qiáng)大功能的程序
  區(qū)別
       包  包含一個(gè)__init__.py聲明文件[空文件 代碼]
文件夾:普通文件夾
 區(qū)別: 包可以有效管理模塊 文件夾只能作為默認(rèn)包進(jìn)行基本管理【包含文件】
   包和文件夾中引入對(duì)應(yīng)的模塊代碼的操作方式有區(qū)別

import 和 from import
包和模塊的引入
import
引入一個(gè)模塊
import 模塊名稱
#使用模塊中的數(shù)據(jù)
模塊名稱.變量名稱
模塊名稱.函數(shù)名稱
模塊名稱.類型名稱

引入一個(gè)包

    import 包名稱
    # 使用包中的數(shù)據(jù)
    包名稱.模塊名稱.變量名稱/函數(shù)名稱/類型名稱

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

    import引入的包和模塊會(huì)自動(dòng)從當(dāng)前文件夾中抛寝、
             系統(tǒng)環(huán)境變量PYTHONPATH中度硝、
            以及系統(tǒng)的sys.path路徑中查詢是否存在該名稱的包/模塊

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

   # (相對(duì))引入包中的模塊
   from .包名稱 import 模塊名稱
   # 使用數(shù)據(jù)
   模塊名稱.變量名稱/函數(shù)名稱/類型名稱

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

    #相對(duì)引入 & 絕對(duì)引入

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

運(yùn)行:添加參照路徑:python -m demo.main
        運(yùn)行過程中荡澎,在main.py中找到相對(duì)路徑的utils.py

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


__all__屬性就是用于模糊導(dǎo)入的特殊魔法屬性,值是一個(gè)包含模塊名稱的列表摩幔,
 主要聲明在__init__.py文件中彤委,用于定義可以使用通配符的方式引入的模塊

自定義包的發(fā)布

 在我們已經(jīng)開發(fā)好的一個(gè)包文件夾下,創(chuàng)建一個(gè)python模塊:setup.py
   模塊中定義如下內(nèi)容:
# 引入構(gòu)建包信息的模塊
from distutils.core import setup
# 定義發(fā)布的包文件的信息
setup(
name=“damu”,  # 發(fā)布的包文件名稱
version=”1.0”,   # 發(fā)布的包的版本序號(hào)
description=”我的測(cè)試包”, # 發(fā)布包的描述信息
author=”大牧莫邪”,   # 發(fā)布包的作者信息
author_email=”damu@163.com”, # 作者聯(lián)系郵箱信息
py_modules=[‘__init__.py’,’..’,..]# 發(fā)布的包中的模塊文件列表
)

執(zhí)行當(dāng)前程序包文件的構(gòu)建操作命令:按照標(biāo)準(zhǔn)格式組織包中的所有數(shù)據(jù)文件

 python setup.py build
  REMARK:構(gòu)建完畢的文件
   可以通過python setup.py install命令直接當(dāng)成第三方模塊進(jìn)行安裝

 執(zhí)行命令進(jìn)行包的打包發(fā)布
      python setup.py sdist

執(zhí)行打包命令
  python setup.py sdist

  首先安裝第三方模塊:twine或衡,用于上傳我們打包的項(xiàng)目文件
  pip install twine
  上傳項(xiàng)目
    twine upload dist/*

此時(shí)焦影,如果我們還需要我們自己開發(fā)的某個(gè)模塊的話,
    直接通過pip命令安裝即可
        pip install 文件名
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末薇宠,一起剝皮案震驚了整個(gè)濱河市偷办,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌澄港,老刑警劉巖椒涯,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異回梧,居然都是意外死亡废岂,警方通過查閱死者的電腦和手機(jī)祖搓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來湖苞,“玉大人拯欧,你說我怎么就攤上這事〔乒牵” “怎么了镐作?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長隆箩。 經(jīng)常有香客問我该贾,道長,這世上最難降的妖魔是什么捌臊? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任杨蛋,我火速辦了婚禮,結(jié)果婚禮上理澎,老公的妹妹穿的比我還像新娘逞力。我一直安慰自己,他們只是感情好糠爬,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布寇荧。 她就那樣靜靜地躺著,像睡著了一般秩铆。 火紅的嫁衣襯著肌膚如雪砚亭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天殴玛,我揣著相機(jī)與錄音,去河邊找鬼添祸。 笑死滚粟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刃泌。 我是一名探鬼主播凡壤,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼耙替!你這毒婦竟也來了亚侠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤俗扇,失蹤者是張志新(化名)和其女友劉穎硝烂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铜幽,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滞谢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年串稀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狮杨。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡母截,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出橄教,到底是詐尸還是另有隱情清寇,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布护蝶,位于F島的核電站颗管,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏滓走。R本人自食惡果不足惜垦江,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搅方。 院中可真熱鬧比吭,春花似錦、人聲如沸姨涡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吼鳞。三九已至氢橙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間匈仗,已是汗流浹背瓢剿。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留悠轩,地道東北人间狂。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像火架,于是被迫代替她去往敵國和親鉴象。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理何鸡,服務(wù)發(fā)現(xiàn)纺弊,斷路器,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • 曾經(jīng)看過很多關(guān)于青春愛情的電影熊赖,像《致青春》《匆匆那年》《那些年我們一起追過的女孩》《初戀那件小事》……相比之下,...
    何雅琴9527閱讀 5,533評(píng)論 0 1
  • 開了二十分鐘的車到馬場(chǎng)虑椎,去參加一古董集市震鹉。內(nèi)心激越而向往,宛如將赴一場(chǎng)曠世盛宴捆姜。并不是第一次參加這樣的集市了传趾,但對(duì)...
    咸云閱讀 213評(píng)論 0 0