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

Python自定義模塊的創(chuàng)建與使用

 更新時(shí)間:2022年05月05日 10:26:31   作者:不認(rèn)輸?shù)男〔穗u  
這篇文章主要給大家介紹了關(guān)于Python自定義模塊創(chuàng)建與使用的相關(guān)資料,文中還給大家分享了python打包用戶自定義模塊的方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、前言

在Python提供了強(qiáng)大的模塊支持,主要體現(xiàn)為不僅在Python標(biāo)準(zhǔn)庫中包含了大量的模塊(稱為標(biāo)準(zhǔn)模塊),而且還有很多第三方模塊,另外開發(fā)者自己也可以開發(fā)自定義模塊。通過這些強(qiáng)大的模塊支持,將極大地提高我們的開發(fā)效率。

二、模塊的概述

模塊的英文是Module,可以認(rèn)為是一盒(箱)主題積木,通過它可以拼出某一主題的東西。這與函數(shù)不同,一個(gè)函數(shù)相當(dāng)于一塊積木,而一個(gè)模塊包括很多函數(shù),也就是很多積木,所以也可以說模塊相當(dāng)于一盒積木。

在Python中,一個(gè)擴(kuò)展名為“.py”的文件就稱之為一個(gè)模塊。通常情況下,我們把能夠?qū)崿F(xiàn)某一特定功能的代碼放置在一個(gè)文件中作為一個(gè)模塊,從而方便其他程序和腳本導(dǎo)入并使用。另外,使用模塊也可以避免函數(shù)名和變量名沖突。

我們知道對于Python代碼可以寫在一個(gè)文件中,但是隨著程序不斷變大,為了維護(hù),需要將其分為多個(gè)文件,這樣可以提高代碼的可維護(hù)性,使用模塊還可以提高代碼的可重用性。即編寫好一個(gè)模塊后,只要是實(shí)現(xiàn)該功能的程序,都可以導(dǎo)入這個(gè)模塊來實(shí)現(xiàn)。

三、自定義模塊

在Python中,自定義模塊有兩個(gè)作用,一個(gè)是規(guī)范代碼,讓代碼更容易閱讀,另外一個(gè)是方便其他程序使用已編好的代碼,提高開發(fā)效率。要實(shí)現(xiàn)自定義模塊主要分為兩部分,一部分是創(chuàng)建模塊,另一部分是導(dǎo)入模塊。

1.創(chuàng)建模塊

創(chuàng)建模塊可以將模塊中相關(guān)的代碼(變量定義和函數(shù)定義等)編寫在一個(gè)單獨(dú)的文件中,并且將該文件命名為“模塊名+.py”的形式,也就是說,創(chuàng)建模塊,實(shí)際就是創(chuàng)建一個(gè).py文件。

注意:

  • 創(chuàng)建模塊時(shí),設(shè)置的模塊名盡量不要與Python自帶的標(biāo)準(zhǔn)模塊名稱相同
  • 模塊文件的擴(kuò)展名必須是“.py”

2.使用import語句導(dǎo)入模塊

創(chuàng)建模塊后,就可以在其他程序中使用該模塊了。要使用該模塊需要先以模塊的形式加載模塊中的代碼,這可以使用import語句實(shí)現(xiàn)。import語句的基本語法格式如下:

import modulename [as alias]

參數(shù)說明:

  • modulename:要導(dǎo)入模塊的名稱
  • [as alias]:為模塊起的別名

例如,導(dǎo)入一個(gè)名稱為test的模塊,并執(zhí)行該模塊中的getInfo()函數(shù),代碼如下:

import test    # 導(dǎo)入test模塊
test.getInfo() # 執(zhí)行模塊中的getInfo()函數(shù)

可以使用關(guān)鍵字 as 將導(dǎo)入模塊起個(gè)別名,代碼如下:

import test as m  # 導(dǎo)入test模塊,并將test別名為m
m.getInfo() # 執(zhí)行模塊中的getInfo()函數(shù)

使用import一次可以導(dǎo)入多個(gè)模塊,在導(dǎo)入多個(gè)模塊時(shí),模塊與模塊之間用逗號“,”隔開。例如,同時(shí)導(dǎo)入test.py、data.py、tips.py 3個(gè)模塊文件,代碼如下:

import test,data,tips

雖然一次可以導(dǎo)入多個(gè)模塊,但不建議大家使用這種方法。

3.使用from…import語句導(dǎo)入模塊

在使用import語句導(dǎo)入模塊時(shí),每一次執(zhí)行import語句都會(huì)創(chuàng)建一個(gè)新的命名空間(namespace),并且在命名空間中執(zhí)行與.py文件相關(guān)的所有語句。在執(zhí)行時(shí),需要在具體的變量、函數(shù)和類名前加上“模塊名.”前綴。如果不想在每次導(dǎo)入模塊時(shí)都創(chuàng)建一個(gè)新的命名空間,而是將具體的定義導(dǎo)入當(dāng)前的命名空間中,這時(shí)可以使用from…import語句。使用from…import語句導(dǎo)入模塊后,不需要再添加前綴,直接通過具體的變量、函數(shù)和類名等訪問即可。

from…import語句的語法格式如下:

from modelname import member

參數(shù)說明:

  • modelname:模塊名稱,區(qū)分字母大小寫,需要和定義模塊時(shí)設(shè)置的模塊名稱的大小寫保持一致。
  • member:用于指定要導(dǎo)入的變量、函數(shù)或者類等??梢酝瑫r(shí)導(dǎo)入多個(gè)定義,各個(gè)定義之間用逗號“,”隔開。如果想導(dǎo)入全部定義,也可以使用通配符星號“*”代替。

例如,通過下面3條語句都可以從模塊導(dǎo)入指定的定義:

from test import getInfo          # 導(dǎo)入test模塊的getInfo()函數(shù)
from test import getInfo,showInfo # 導(dǎo)入test模塊的getInfo()和showInfo()函數(shù)
from test import *                # 導(dǎo)入test模塊的全部定義(包括變量和函數(shù))

注意:

在使用from…import語句導(dǎo)入模塊中定義時(shí),需要保證所有導(dǎo)入的內(nèi)容在當(dāng)前的命名空間中是唯一的,否則將出現(xiàn)沖突,后導(dǎo)入的同名變量、函數(shù)或者類會(huì)覆蓋先導(dǎo)入的。這時(shí)就需要使用import語句進(jìn)行導(dǎo)入了。

附:python打包用戶自定義模塊

假設(shè)需要打包的模塊文件名為my.py,打包模塊需要新建的一個(gè)腳本setip.py,然后在腳本下輸入如下的內(nèi)容:

from?disutils.core?import?setup
setup{name?=?'my',version?=?'1.0',py_modules?=?['my']}

以管理員身份運(yùn)行cmd,進(jìn)入my.py的目錄,執(zhí)行下面的命令即可打包:

python?setup.py?sdist

運(yùn)行后在該目錄下方出現(xiàn)一個(gè)文件夾dist,進(jìn)入這個(gè)文件夾,會(huì)出現(xiàn)一個(gè)my-1.0.zip文件。
將該壓縮包放在sys.path的目錄下,解壓,以管理員身份運(yùn)行cmd,進(jìn)入解壓的目錄,執(zhí)行下方的命令即可自動(dòng)安裝my模塊。

python?setup.py?install

完成安裝后,即可加載my模塊:

import?my

總結(jié)

到此這篇關(guān)于Python自定義模塊創(chuàng)建與使用的文章就介紹到這了,更多相關(guān)Python自定義模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pandas?缺失數(shù)據(jù)處理代碼匯總

    Pandas?缺失數(shù)據(jù)處理代碼匯總

    這篇文章主要介紹了Pandas?缺失數(shù)據(jù)處理代碼匯總,在pandas中,缺失數(shù)據(jù)顯示為NaN。缺失值有3種表示方法,np.nan,none,pd.NA,更多相關(guān)介紹需要的朋友可以參考下面文章內(nèi)容
    2022-06-06
  • python日志模塊logging案例詳解

    python日志模塊logging案例詳解

    日志模塊主要用于輸出運(yùn)行日志,可以設(shè)置輸出日志的等級、日志保存路徑、日志文件回滾等,這篇文章主要介紹了python日志模塊logging,需要的朋友可以參考下
    2024-01-01
  • 通過實(shí)例學(xué)習(xí)Python Excel操作

    通過實(shí)例學(xué)習(xí)Python Excel操作

    這篇文章主要介紹了通過實(shí)例學(xué)習(xí)Python Excel操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python使用gTTS庫實(shí)現(xiàn)文本轉(zhuǎn)換為語音的詳細(xì)步驟

    Python使用gTTS庫實(shí)現(xiàn)文本轉(zhuǎn)換為語音的詳細(xì)步驟

    文本轉(zhuǎn)換為語音(Text-to-Speech,簡稱TTS)技術(shù)是人工智能的重要組成部分,廣泛應(yīng)用于智能助手、導(dǎo)航系統(tǒng)、讀屏軟件和智能家居等領(lǐng)域,TTS技術(shù)使得機(jī)器能夠?qū)嫖淖洲D(zhuǎn)換為自然流暢的語音,本文將介紹如何使用Python的gTTS庫實(shí)現(xiàn)簡單的TTS功能,需要的朋友可以參考下
    2024-07-07
  • python 模擬網(wǎng)站登錄——滑塊驗(yàn)證碼的識(shí)別

    python 模擬網(wǎng)站登錄——滑塊驗(yàn)證碼的識(shí)別

    這篇文章主要介紹了python 模擬網(wǎng)站登錄——滑塊驗(yàn)證碼的識(shí)別,幫助大家更好的理解和學(xué)習(xí)使用python的爬蟲技術(shù),感興趣的朋友可以了解下
    2021-03-03
  • python實(shí)現(xiàn)網(wǎng)上購物系統(tǒng)

    python實(shí)現(xiàn)網(wǎng)上購物系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)網(wǎng)上購物系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 四步教你學(xué)會(huì)打包一個(gè)新的Python模塊

    四步教你學(xué)會(huì)打包一個(gè)新的Python模塊

    當(dāng)你安裝應(yīng)用程序時(shí),通常是安裝一個(gè)軟件包,其中包含應(yīng)用程序的可執(zhí)行代碼和重要文件。在?Linux上,軟件一般被打包成RPM或DEB等格式,然而幾乎每天都有新的Python模塊發(fā)布,因此你很容易遇到一個(gè)尚未打包的Python模塊。本文教你四步打包一個(gè)新的Python模塊
    2022-09-09
  • Python使用multiprocessing實(shí)現(xiàn)一個(gè)最簡單的分布式作業(yè)調(diào)度系統(tǒng)

    Python使用multiprocessing實(shí)現(xiàn)一個(gè)最簡單的分布式作業(yè)調(diào)度系統(tǒng)

    mutilprocess像線程一樣管理進(jìn)程,這個(gè)是mutilprocess的核心,他與threading很是相像,對多核CPU的利用率會(huì)比threading好的多,通過本文給大家介紹Python使用multiprocessing實(shí)現(xiàn)一個(gè)最簡單的分布式作業(yè)調(diào)度系統(tǒng),需要的朋友參考下
    2016-03-03
  • 卷積神經(jīng)網(wǎng)絡(luò)(CNN)基于SqueezeNet的眼疾識(shí)別功能

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)基于SqueezeNet的眼疾識(shí)別功能

    SqueezeNet是一種輕量且高效的CNN模型,它參數(shù)比AlexNet少50倍,但模型性能(accuracy)與AlexNet接近,這篇文章主要介紹了卷積神經(jīng)網(wǎng)絡(luò)(CNN)基于SqueezeNet的眼疾識(shí)別,需要的朋友可以參考下
    2023-08-08
  • python 并發(fā)編程 阻塞IO模型原理解析

    python 并發(fā)編程 阻塞IO模型原理解析

    這篇文章主要介紹了python 并發(fā)編程 阻塞IO模型原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評論

商南县| 澜沧| 大名县| 全椒县| 兴仁县| 丹寨县| 龙山县| 兴化市| 县级市| 莫力| 洛扎县| 敦煌市| 民乐县| 鹿泉市| 丽江市| 黔江区| 阿拉善左旗| 泰顺县| 彩票| 白朗县| 九龙城区| 略阳县| 保康县| 东乌珠穆沁旗| 贵州省| 垫江县| 寿阳县| 名山县| 南安市| 赞皇县| 永定县| 夏津县| 阿尔山市| 平乡县| 中山市| 台南县| 谷城县| 蒲城县| 商水县| 阳城县| 丹东市|