Python基礎(chǔ)入門教程20: 企業(yè)級(jí)開(kāi)發(fā)基礎(chǔ) 自定義模塊
來(lái)源:
奇酷教育 發(fā)表于:
1 模塊的概念和意義2 模塊的定義和使用3 再說(shuō)變量的作用域之前的課程中,我們已經(jīng)了解了python程序設(shè)計(jì)開(kāi)發(fā)的基礎(chǔ)部分內(nèi)容包含了數(shù)據(jù)類
1 模塊的概念和意義
2 模塊的定義和使用
3 再說(shuō)變量的作用域
之前的課程中,我們已經(jīng)了解了python程序設(shè)計(jì)開(kāi)發(fā)的基礎(chǔ)部分內(nèi)容
包含了數(shù)據(jù)類型、變量、運(yùn)算符、程序選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、函數(shù)處理、字符串處理等等內(nèi)容。
本節(jié)內(nèi)容開(kāi)始,我們開(kāi)始學(xué)習(xí)python企業(yè)級(jí)開(kāi)發(fā)基礎(chǔ)部分的內(nèi)容,會(huì)涉及到模塊式整合開(kāi)發(fā)、面向?qū)ο蟪绦蛟O(shè)計(jì)、錯(cuò)誤的調(diào)試和測(cè)試、高級(jí)開(kāi)發(fā)[文件IO處理,網(wǎng)絡(luò)編程,多線程程序開(kāi)發(fā)、正則表達(dá)式等等]內(nèi)容,
1. 模塊的概念和意義
我們?cè)诔R?guī)程序開(kāi)發(fā)的過(guò)程中,如果只是通過(guò)python來(lái)寫一些項(xiàng)目維護(hù)的小腳本程序,前面學(xué)過(guò)的內(nèi)容已經(jīng)基本夠用了,但是如果涉及到企業(yè)級(jí)開(kāi)發(fā)的復(fù)雜的一些需求的話,程序設(shè)計(jì)開(kāi)發(fā)過(guò)程中會(huì)出現(xiàn)大量的代碼,如果著大量的代碼(如:1萬(wàn)行代碼)寫在一個(gè)python文件中,就會(huì)讓這個(gè)文件的體積非常的龐大,開(kāi)發(fā)過(guò)程中會(huì)造成大量的不必要的問(wèn)題:如變量定義是否會(huì)覆蓋其他定義的變量,添加功能處理代碼會(huì)否影響其他的功能,由于大量代碼集中在一個(gè)文件中導(dǎo)致修改維護(hù)變得非常的不容易,代碼的可讀性非常差等等各種問(wèn)題。
此時(shí),為了方便我們將不同的處理功能區(qū)分開(kāi),我們將處理不同數(shù)據(jù)或者功能的函數(shù)分別分組存放在不同的python文件中,就會(huì)將上面一個(gè)比較龐大的python文件拆分成多個(gè)python文件,每個(gè)python文件中的代碼內(nèi)容會(huì)比較少,通過(guò)多個(gè)Python文件互相組合的方式來(lái)完成復(fù)雜的處理功能。這樣拆分的不同的python文件,每個(gè)python文件就是一個(gè)單獨(dú)的python模塊,專業(yè)術(shù)語(yǔ):module
我們定義好的Python模塊,可以在需要的地方,通過(guò)import 模塊名稱關(guān)鍵字來(lái)引入這個(gè)模塊,代碼如下:
拆分模塊的好處是第一、將一個(gè)比較復(fù)雜的單文件拆分成多個(gè)文件,方便代碼的管理和開(kāi)發(fā)維護(hù),第二、我們開(kāi)發(fā)并完善好的Python模塊,在其他需要這個(gè)模塊功能的地方就可以直接引入組合這個(gè)模塊,不需要重復(fù)編寫Python代碼了,第三、不同的python模塊中,就可以使用相同名稱的變量了,不同模塊中的變量不會(huì)互相覆蓋數(shù)據(jù)或者產(chǎn)生沖突,降低了我們代碼開(kāi)發(fā)的成本
變量在之前的課程中,我們已經(jīng)提到了變量在Python中有局部變量和全局變量的區(qū)分,是通過(guò)是否定義在函數(shù)內(nèi)部來(lái)區(qū)分的。
此時(shí)有了多模塊之后,對(duì)于變量的作用域,需要進(jìn)行更加細(xì)致的劃分。
3.1. 模塊內(nèi)部
模塊內(nèi)部,還是按照正常的情況進(jìn)行劃分,按照是否定義在函數(shù)內(nèi)部來(lái)區(qū)分全局變量和局部變量,在模塊文件內(nèi)部,變量的使用沒(méi)有任何的變量
在模塊內(nèi)部,變量依舊是全局變量/局部變量,變量的作用域正常使用即可
3.2. 不同模塊之間的變量訪問(wèn)
python中定義了模塊之后,不同模塊之間訪問(wèn)數(shù)據(jù)和函數(shù)的情況就比較常見(jiàn)了;模塊中的變量,有些是需要讓別的模塊訪問(wèn)的,有些是不希望別的模塊訪問(wèn)的,此時(shí)就會(huì)將變量區(qū)分為模塊公開(kāi)的變量、模塊私有的變量?jī)煞N變量了。
python的模塊中,按照正常的命名規(guī)則命名的變量或者函數(shù),規(guī)范為公開(kāi)的變量或者函數(shù),其他的模塊都可以正常的訪問(wèn)
python的模塊中,使用一個(gè)下劃線開(kāi)頭來(lái)命名的變量或者函數(shù),規(guī)范為私有的變量或者函數(shù),只能在當(dāng)前模塊中使用
python的模塊中,使用兩個(gè)下劃線開(kāi)頭的變量,可以別模塊直接引用使用具有特殊的含義,如__name__表示當(dāng)前模塊名稱等等;規(guī)范要求我們自己的變量名稱盡量不要使用這樣的名稱。