亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

1.什么是模塊(module)

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

2.模塊有什么作用

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

3.模塊的分類

  • 標(biāo)準(zhǔn)模塊(庫(kù))
  • 第三方模塊(庫(kù))
  • 自定義模塊

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

4.什么是包(package)

Python包實(shí)際上是一個(gè)目錄

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

py2與py3 的區(qū)別

py2:init.py是必須的

py3:init.py是可選的

模塊和包名要盡量和內(nèi)置的模塊名不相同,不然會(huì)覆蓋內(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.同一個(gè)模塊重復(fù)導(dǎo)入

在這里插入圖片描述

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

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

在這里插入圖片描述

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

重名的模塊,as取別名

在這里插入圖片描述

9.相對(duì)導(dǎo)入

相對(duì)導(dǎo)入使用.或…來(lái)進(jìn)行導(dǎo)入

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

Python會(huì)自動(dòng)識(shí)別一個(gè)目錄是不是包對(duì)于當(dāng)前被執(zhí)行的文件來(lái)說(shuō):

當(dāng)前執(zhí)行文件所在目錄不是一個(gè)包

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

在這里插入圖片描述

10.模塊查找順序

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

查找順序:

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

2.如果都沒(méi)有找到模塊名就報(bào)錯(cuò)

二、Python下劃線

標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)某種對(duì)象的名稱。以下劃線開(kāi)頭的標(biāo)識(shí)符是有特殊意義的。

1.制作包與模塊

包c(diǎn)ode:init.py,model.py,_model.py

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

在這里插入圖片描述

包c(diǎn)ode:init.py,model.py,_model.py model.py

文件內(nèi)容

在這里插入圖片描述

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

以單下劃線開(kāi)頭的(_foo)

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

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

代表Python中特殊方法專用的標(biāo)識(shí),不建議用戶使用這種命名方式。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

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

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

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

內(nèi)置屬性:name

當(dāng)自己執(zhí)行時(shí),等于__name__的值為_(kāi)_main__

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

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

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

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

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

1.如何分享模塊

如何我們寫(xiě)了一個(gè)計(jì)算Fab第N項(xiàng)的函數(shù),如何分享給別人呢?

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

2.如何使用別人的模塊

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

pip  tar .gz

3.setuptools工具

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

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

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

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

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

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

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

docs => 文檔

REMEME.txt

LICENSE

Data

在這里插入圖片描述

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

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

在這里插入圖片描述

六. 課后作業(yè)

在這里插入圖片描述

在這里插入圖片描述

總結(jié)

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

對(duì)于__name__屬性的使用, 防止代碼大量加載運(yùn)行

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

Python模塊的打包

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

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

相關(guān)文章

  • Python中協(xié)程coroutine適用場(chǎng)景分析

    Python中協(xié)程coroutine適用場(chǎng)景分析

    多線程中可能出現(xiàn)多個(gè)線程爭(zhēng)搶變量,所以變量需要加鎖;協(xié)程中任一時(shí)刻都只有一個(gè)線程,所以變量不需要加鎖,這篇文章主要介紹了Python中協(xié)程(coroutine)詳解,需要的朋友可以參考下
    2024-04-04
  • python報(bào)錯(cuò)TypeError: ‘NoneType‘ object is not subscriptable的解決方法

    python報(bào)錯(cuò)TypeError: ‘NoneType‘ object is not subscriptable的解決

    這篇文章主要給大家介紹了關(guān)于python報(bào)錯(cuò)TypeError: ‘NoneType‘ object is not subscriptable的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python基礎(chǔ)入門(mén)詳解(文件輸入/輸出 內(nèi)建類型 字典操作使用方法)

    python基礎(chǔ)入門(mén)詳解(文件輸入/輸出 內(nèi)建類型 字典操作使用方法)

    這篇文章主要介紹了python基礎(chǔ)入門(mén),包括文件輸入/輸出、內(nèi)建類型、字典操作等使用方法
    2013-12-12
  • python實(shí)現(xiàn)在一個(gè)畫(huà)布上畫(huà)多個(gè)子圖

    python實(shí)現(xiàn)在一個(gè)畫(huà)布上畫(huà)多個(gè)子圖

    今天小編就為大家分享一篇python實(shí)現(xiàn)在一個(gè)畫(huà)布上畫(huà)多個(gè)子圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python繞過(guò)圖片滑動(dòng)驗(yàn)證碼實(shí)現(xiàn)爬取PTA所有題目功能 附源碼

    python繞過(guò)圖片滑動(dòng)驗(yàn)證碼實(shí)現(xiàn)爬取PTA所有題目功能 附源碼

    這篇文章主要介紹了python繞過(guò)圖片滑動(dòng)驗(yàn)證碼實(shí)現(xiàn)爬取PTA所有題目 附源碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Python一些基本的圖像操作和處理總結(jié)

    Python一些基本的圖像操作和處理總結(jié)

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著Python圖像操作和處理展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • python讀取串口數(shù)據(jù)有幾種方法

    python讀取串口數(shù)據(jù)有幾種方法

    在實(shí)際開(kāi)發(fā)中,有很多場(chǎng)景需要通過(guò)串口與外部設(shè)備進(jìn)行數(shù)據(jù)通信,本文主要介紹了python讀取串口數(shù)據(jù)有幾種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • python numpy 按行歸一化的實(shí)例

    python numpy 按行歸一化的實(shí)例

    今天小編就為大家分享一篇python numpy 按行歸一化的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python如何停止遞歸

    python如何停止遞歸

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python停止遞歸的方法和相關(guān)知識(shí)點(diǎn),有興趣的朋友們可以學(xué)習(xí)下。
    2020-09-09
  • Python pkg_resources模塊動(dòng)態(tài)加載插件實(shí)例分析

    Python pkg_resources模塊動(dòng)態(tài)加載插件實(shí)例分析

    當(dāng)編寫(xiě)應(yīng)用軟件時(shí),我們通常希望程序具有一定的擴(kuò)展性,額外的功能——甚至所有非核心的功能,都能通過(guò)插件實(shí)現(xiàn),具有可插拔性。特別是使用 Python 編寫(xiě)的程序,由于語(yǔ)言本身的動(dòng)態(tài)特性,為我們的插件方案提供了很多種實(shí)現(xiàn)方式
    2022-08-08

最新評(píng)論