日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python modbus类封装_Python 中引入一个文件,模块的概念

發(fā)布時(shí)間:2025/6/17 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python modbus类封装_Python 中引入一个文件,模块的概念 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python 提供了強(qiáng)大的模塊支持,主要體現(xiàn)在,不僅 Python 標(biāo)準(zhǔn)庫(kù)中包含了大量的模塊(稱為標(biāo)準(zhǔn)模塊),還有大量的第三方模塊,開(kāi)發(fā)者自己也可以開(kāi)發(fā)自定義模塊。

通過(guò)這些強(qiáng)大的模塊可以極大地提高開(kāi)發(fā)者的開(kāi)發(fā)效率。

一、模塊的概念

模塊,英文為 Modules,是 Python 程序架構(gòu)的一個(gè)核心概念。

至于模塊到底是什么,可以用一句話總結(jié):模塊就是 Python 程序,每一個(gè)以擴(kuò)展名 py 結(jié)尾的 Python 源代碼文件都是一個(gè)模塊。

換句話說(shuō),任何 Python 程序都可以作為模塊。

模塊可以比作一盒積木,通過(guò)它可以拼出多種主題的玩具,這與函數(shù)不同,一個(gè)函數(shù)僅相當(dāng)于一塊積木,而一個(gè)模塊中可以包含多個(gè)函數(shù),也就是很多積木。

模塊名同樣也是一個(gè)標(biāo)識(shí)符,需要符合標(biāo)識(shí)符的命名規(guī)則。

在模塊中定義的全局變量、函數(shù)、類都是提供給外界直接使用的工具。

模塊就好比是工具包,要想使用這個(gè)工具包中的工具,就需要先導(dǎo)入這個(gè)模塊。

二、模塊的導(dǎo)入方式

1、import 導(dǎo)入

import 模塊名1, 模塊名2

導(dǎo)入之后,通過(guò) 模塊名. 的方式使用模塊提供的工具 —— 全局變量、函數(shù)、類。

使用 as 指定模塊的別名

如果模塊的名字太長(zhǎng),可以使用 as 指定模塊的名稱,以方便在代碼中的使用。

import 模塊名1 as 模塊別名

注意:模塊別名應(yīng)該符合大駝峰命名法。

2、from...import 導(dǎo)入

如果希望從某一個(gè)模塊中,導(dǎo)入部分工具,就可以使用 from ... import 的方式。

import 模塊名是一次性把模塊中所有工具全部導(dǎo)入,并且通過(guò) 模塊名/別名 訪問(wèn)。

# 從 模塊 導(dǎo)入 某一個(gè)工具from 模塊名1 import 工具名

導(dǎo)入之后,不需要通過(guò) 模塊名. 的方式來(lái)調(diào)用工具,可以直接使用模塊提供的工具 —— 全局變量、函數(shù)、類。

如果兩個(gè)模塊,存在同名的函數(shù),那么后導(dǎo)入模塊的函數(shù),會(huì)覆蓋掉先導(dǎo)入的函數(shù)。

在開(kāi)發(fā)時(shí), import 代碼應(yīng)該統(tǒng)一寫在代碼的頂部,這樣可以更容易地及時(shí)發(fā)現(xiàn)沖突。一旦發(fā)現(xiàn)沖突,可以使用 as 關(guān)鍵字給其中一個(gè)工具起一個(gè)別名。

import 導(dǎo)入所有工具

# 從 模塊 導(dǎo)入 所有工具from 模塊名1 import *

不過(guò),這種方式不推薦使用,因?yàn)楹瘮?shù)重名并沒(méi)有任何的提示,出現(xiàn)問(wèn)題不好排查。

3、模塊的搜索順序

Python 的解釋器在導(dǎo)入模塊時(shí),會(huì):
搜索當(dāng)前目錄指定模塊名的文件,如果有就直接導(dǎo)入,
如果沒(méi)有,再搜索系統(tǒng)目錄。

在開(kāi)發(fā)時(shí),給文件起名,不要和系統(tǒng)的模塊文件重名。

示例:

import random# 生成一個(gè) 0~10 的數(shù)字rand = random.randint(0, 10)print(rand)

上面的代碼,如果在當(dāng)前目錄下,存在一個(gè) random.py 的文件,程序就無(wú)法正常執(zhí)行了!

這個(gè)時(shí)候,Python 的解釋器會(huì)加載當(dāng)前目錄下的 random.py 而不會(huì)加載系統(tǒng)的 random 模塊。

Python 中每一個(gè)模塊都有一個(gè)內(nèi)置屬性 __file__ 可以查看模塊的完整路徑。

import randomprint(random.__file__)# D:pythonlibandom.py

4、原則 —— 每一個(gè)文件都應(yīng)該是可以被導(dǎo)入的

一個(gè)獨(dú)立的 Python 文件就是一個(gè)模塊,在導(dǎo)入文件時(shí),文件中所有沒(méi)有任何縮進(jìn)的代碼都會(huì)被執(zhí)行一遍!

在實(shí)際開(kāi)發(fā)中,每一個(gè)模塊都是獨(dú)立開(kāi)發(fā)的,大多都有專人負(fù)責(zé)。開(kāi)發(fā)人員通常會(huì)在模塊下方增加一些測(cè)試代碼,僅在模塊內(nèi)使用,而被導(dǎo)入到其他文件中不需要執(zhí)行。

在 Python 中有一個(gè) __name__ 屬性,__name__ 屬性可以做到,測(cè)試模塊的代碼只在測(cè)試情況下被運(yùn)行,而在被導(dǎo)入時(shí)不會(huì)被執(zhí)行!

__name__ 是 Python 的一個(gè)內(nèi)置屬性,記錄著一個(gè)字符串。

如果是被其他文件導(dǎo)入并執(zhí)行的,那么__name__ 就是模塊名,
如果是直接執(zhí)行當(dāng)前程序,那么 __name__ 是 '__main__'。

所以在很多 Python 文件中都會(huì)看到以下格式的代碼:

# 導(dǎo)入模塊# 定義全局變量# 定義類# 定義函數(shù)# 在代碼的最下方def main(): # ... pass# 根據(jù) __name__ 判斷是否執(zhí)行下方代碼if __name__ == "__main__": main()

三、模塊的價(jià)值

經(jīng)過(guò)之前的學(xué)習(xí),我們已經(jīng)能夠?qū)?Python 代碼寫到一個(gè)文件中。

但隨著程序功能的復(fù)雜,程序體積會(huì)不斷變大,為了便于維護(hù),通常會(huì)將其分為多個(gè)文件(模塊),這樣不僅可以提高代碼的可維護(hù)性,還可以提高代碼的可重用性。

代碼的可重用性體現(xiàn)在,當(dāng)編寫好一個(gè)模塊后,只要編程過(guò)程中需要用到該模塊中的某個(gè)功能(由變量、函數(shù)、類實(shí)現(xiàn)),無(wú)需做重復(fù)性的編寫工作,直接在程序中導(dǎo)入該模塊即可使用該功能。

之前學(xué)習(xí)過(guò)面向?qū)ο蟮姆庋b,并且還介紹了很多具有封裝特性的結(jié)構(gòu),比如說(shuō):

諸多容器,例如列表、元組、字符串、字典等,它們都是對(duì)數(shù)據(jù)的封裝。

函數(shù)是對(duì) Python 代碼的封裝。

類是對(duì)方法和屬性的封裝,也可以說(shuō)是對(duì)函數(shù)和數(shù)據(jù)的封裝。

而這里的模塊,可以理解為是對(duì)代碼更高級(jí)的封裝,即把能夠?qū)崿F(xiàn)某一特定功能的代碼編寫在同一個(gè) .py 文件中,并將其作為一個(gè)獨(dú)立的模塊。

這樣既可以方便其它程序或腳本導(dǎo)入并使用,同時(shí)還能有效避免函數(shù)名和變量名發(fā)生沖突。

最后,小編想說(shuō):我是一名python開(kāi)發(fā)工程師,整理了一套最新的python系統(tǒng)學(xué)習(xí)教程,想要這些資料的可以關(guān)注私信小編“01”即可(免費(fèi)分享哦)希望能對(duì)你有所幫助。

總結(jié)

以上是生活随笔為你收集整理的python modbus类封装_Python 中引入一个文件,模块的概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。