最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python--模塊(Module)和包(Package)詳解

 更新時間:2021年09月07日 14:35:01   作者:未末0902  
這篇文章主要介紹了Python中模塊(Module)和包(Package)的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、模塊的導(dǎo)入

1.什么是模塊(module)

模塊就是Python文件,里面定義了很多的函數(shù)、類、變量 一個完整大型的python程序是由模塊和包的形式組織起來的,可見模塊在python中的重要 性。

2.模塊有什么作用

在python交互式解釋器中操作輸入的代碼,在退出python時是不會被保存的; 而模塊文 件中的代碼是永久存在的。
減少重復(fù)代碼, 減少工作量(寫的量、改的量)、代碼更優(yōu)雅、拿來主義

3.模塊的分類

  • 標準模塊(庫)
  • 第三方模塊(庫)
  • 自定義模塊

Python許多時候自己定義的函數(shù),需要經(jīng)常調(diào)用時;就可以自己定義一個模塊,將常用函數(shù)寫入模塊里,下次使用常用函數(shù)時直接導(dǎo)入模塊,就可以使用函數(shù)了

4.什么是包(package)

Python包實際上是一個目錄

包結(jié)構(gòu)的目錄里面可以有一個__init__.py模塊

py2與py3 的區(qū)別

py2:init.py是必須的

py3:init.py是可選的

模塊和包名要盡量和內(nèi)置的模塊名不相同,不然會覆蓋內(nèi)置的模塊

5.import/fromimport導(dǎo)入

在這里插入圖片描述

6.使用名字導(dǎo)入

在這里插入圖片描述

7.制作包與模塊

包pack01:one.py,two.py,three.py

包pack02:three.py

文件內(nèi)容:print(“我是xxx.py”)

在這里插入圖片描述

8.同一個模塊重復(fù)導(dǎo)入

在這里插入圖片描述

當同一個模塊重復(fù)導(dǎo)入時,只執(zhí)行第一次

導(dǎo)入重名的模塊

在這里插入圖片描述

兩個都會執(zhí)行,當前生效的是后導(dǎo)入的模塊

重名的模塊,as取別名

在這里插入圖片描述

9.相對導(dǎo)入

相對導(dǎo)入使用.或…來進行導(dǎo)入

相對導(dǎo)入只能導(dǎo)入包中的模塊/子包

Python會自動識別一個目錄是不是包對于當前被執(zhí)行的文件來說:

當前執(zhí)行文件所在目錄不是一個包

子目錄及更深的目錄都是包

在這里插入圖片描述

10.模塊查找順序

注意:不要跟Python內(nèi)置的這些模塊重名

查找順序:

1.Python中所有加載到內(nèi)存的模塊都放在sys.modules。當import一個模塊時首先會在這個列表中查找是否已經(jīng)加載了此模塊,如果加載了則只是將模塊的名字加入到正在調(diào)用import的模塊的Local名字空間中。如果沒有加載則從sys.path目錄中按照模塊名稱查找模塊文件

2.如果都沒有找到模塊名就報錯

二、Python下劃線

標識符是用來標識某種對象的名稱。以下劃線開頭的標識符是有特殊意義的。

1.制作包與模塊

包code:init.py,model.py,_model.py

文件內(nèi)容:print(“我是xxx.py”)

在這里插入圖片描述

包code:init.py,model.py,_model.py model.py

文件內(nèi)容

在這里插入圖片描述

2.下劃線的特殊含義(模塊)

以單下劃線開頭的(_foo)

表示保護對象,不能用from xxx import導(dǎo)入包/模塊以雙下劃線開頭的(__foo)

表示私有對象,不能用from xxx import導(dǎo)入包/模塊以雙下劃線開頭和結(jié)尾的(foo)

代表Python中特殊方法專用的標識,不建議用戶使用這種命名方式。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

定義package中的__all__,用來模糊導(dǎo)入

導(dǎo)入一個package,就會首先調(diào)用該package的__init__.py文件,用來初始化模塊包

編寫Python代碼(不建議在__init__中寫python模塊,可以在包中在創(chuàng)建另外的模塊來寫,盡量保證__init__.py簡單)

內(nèi)置屬性:name

當自己執(zhí)行時,等于__name__的值為__main__

當被作為模塊導(dǎo)入,等于文件名(不包含后綴, 可含模塊名)

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

三.文件與模塊執(zhí)行過程

  • Python模塊導(dǎo)入執(zhí)行的過程
  • 通過sys.path環(huán)境變量找到模塊文件
  • 編譯成字節(jié)碼文件(pyc文件)
  • 如果字節(jié)碼過期了會自動重新生成
  • 如果字節(jié)碼文件已存在則直接導(dǎo)入字節(jié)碼文件
  • 執(zhí)行模塊中的代碼來創(chuàng)建所定義的對象

四.模塊打包與發(fā)布

1.如何分享模塊

如何我們寫了一個計算Fab第N項的函數(shù),如何分享給別人呢?

拷貝? 導(dǎo)入問題?依賴問題?

2.如何使用別人的模塊

我們是如何使用第三方模塊的?

pip  tar .gz

3.setuptools工具

Setuptools是一個給開發(fā)者構(gòu)建和發(fā)布python包的工具,特別是當包依賴于其他包時。

官方文檔:https://docs.python.org/3/distutils/examples.html

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

五.軟件目錄結(jié)構(gòu)規(guī)范

1.定義目錄結(jié)構(gòu)目的

  • 可讀性高 不熟悉這個項目的代碼的人,一眼就能看懂目錄結(jié)構(gòu),知道程序啟動腳本是哪個,測試目錄在哪 兒,配置文件在哪兒等等。從而非常快速的了解這個項目。
  • 可維護性、可擴展性好 定義好組織規(guī)則后,維護者就能很明確地知道,新增的哪個文件和代碼應(yīng)該放在什么目錄之下。這 個好處是,隨著時間的推移,代碼/配置的規(guī)模增加,項目結(jié)構(gòu)不會混亂,仍然能夠組織良好。

2.軟件目錄結(jié)構(gòu)規(guī)范

docs => 文檔

REMEME.txt

LICENSE

Data

在這里插入圖片描述

3.如何用導(dǎo)入模塊與包

用相對導(dǎo)入的方式導(dǎo)入數(shù)據(jù)

在這里插入圖片描述

六. 課后作業(yè)

在這里插入圖片描述

在這里插入圖片描述

總結(jié)

對于pyhton模塊命名空間作用域, 一定要注意成員變量的范圍

對于__name__屬性的使用, 防止代碼大量加載運行

對于模塊的導(dǎo)入的幾種方式要靈活去運用

Python模塊的打包

軟件目錄結(jié)構(gòu)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 詳解Python中的join()函數(shù)的用法

    詳解Python中的join()函數(shù)的用法

    這篇文章主要介紹了詳解Python中的join()函數(shù)的用法,join()函數(shù)主要用來拼接字符串,是Python學習當中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-04-04
  • pip安裝報錯ModuleNotFoundError的問題解決方法

    pip安裝報錯ModuleNotFoundError的問題解決方法

    在使用Python開發(fā)時,經(jīng)常會遇到由于庫安裝失敗導(dǎo)致的錯誤信息,一個常見的錯誤是ModuleNotFoundError: No module named 'cv2',下面我們來看看具體的解決方法吧
    2025-06-06
  • 如何在pyqt中實現(xiàn)全局事件實戰(zhàn)記錄

    如何在pyqt中實現(xiàn)全局事件實戰(zhàn)記錄

    事件的處理機制非常的復(fù)雜,屬于PyQt底層的事,不必我們關(guān)心,學會使用就行,下面這篇文章主要給大家介紹了關(guān)于如何在pyqt中實現(xiàn)全局事件的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • opencv模板匹配相同位置去除重復(fù)的框

    opencv模板匹配相同位置去除重復(fù)的框

    這篇文章主要介紹了opencv模板匹配相同位置去除重復(fù)的框,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Pytorch mask_select 函數(shù)的用法詳解

    Pytorch mask_select 函數(shù)的用法詳解

    今天小編就為大家分享一篇Pytorch mask_select 函數(shù)的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python?數(shù)據(jù)分析教程探索性數(shù)據(jù)分析

    Python?數(shù)據(jù)分析教程探索性數(shù)據(jù)分析

    這篇文章主要介紹了Python?數(shù)據(jù)分析教程探索性數(shù)據(jù)分析,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • python語音信號處理詳細教程

    python語音信號處理詳細教程

    在深度學習中,語音的輸入都是需要處理的,下面這篇文章主要給大家介紹了關(guān)于python語音信號處理的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • python基于隱馬爾可夫模型實現(xiàn)中文拼音輸入

    python基于隱馬爾可夫模型實現(xiàn)中文拼音輸入

    這篇文章主要介紹了python基于隱馬爾可夫模型實現(xiàn)中文拼音輸入的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • python通過socket查詢whois的方法

    python通過socket查詢whois的方法

    這篇文章主要介紹了python通過socket查詢whois的方法,涉及Python基于socket模塊進行查詢的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • python中匿名函數(shù)的應(yīng)用方法

    python中匿名函數(shù)的應(yīng)用方法

    這篇文章主要介紹了python中匿名函數(shù)的應(yīng)用方法,匿名函數(shù)是無需使用def定義的函數(shù),只需使用關(guān)鍵字lambda進行聲明,且只可使用一次,只有一個返回值,需要的朋友可以參考下
    2023-07-07

最新評論

阿拉尔市| 广南县| 唐海县| 宜城市| 三台县| 桃江县| 商丘市| 云安县| 巫溪县| 新田县| 灵璧县| 七台河市| 广德县| 法库县| 班玛县| 伊宁县| 泰兴市| 临潭县| 通渭县| 德江县| 颍上县| 班玛县| 昌乐县| 宁强县| 天台县| 云龙县| 浮山县| 桂阳县| 石景山区| 广宁县| 营口市| 凌云县| 南和县| 加查县| 陵川县| 竹溪县| 镇安县| 光泽县| 罗甸县| 乌鲁木齐县| 咸丰县|