python中模塊導(dǎo)入模式詳解
模塊導(dǎo)入
1.1 import導(dǎo)入模塊
- 所謂的模塊其實就是一個外部的工具包,其中存在的其實就是Python文件,這些文件都實現(xiàn)了某種特定的功能,我們導(dǎo)入包之后直接使用即可,非常的方便。
- 在開發(fā)中使用最多的就是使用: import 方式進行導(dǎo)入。導(dǎo)入的包一般放在文件的最前面。
- 語法格式 : import 模塊名
# 導(dǎo)入時間模塊 import timr # 使用時間模塊中的方法 time.ctime()
- 調(diào)用模塊方法的語法格式: 模塊名.函數(shù)名 ,這樣調(diào)用可以防止不同模塊中有同名方法導(dǎo)致錯誤。
1.2 from 模塊名 import 導(dǎo)入模板的方法
- 一個模塊可能存在很多的函數(shù),如果只是想導(dǎo)入其中的幾個函數(shù),可以使用from xxx import xxx 方式導(dǎo)入。
- 使用這種方式導(dǎo)入之后不用在使用 模塊名.函數(shù)名 的方式來調(diào)用函數(shù),可以直接使用 函數(shù)名。但是一定要注意這種形式可能會產(chǎn)生覆蓋的情況,當(dāng)導(dǎo)入了兩個不同包中的同名的函數(shù)的時候,第二個函數(shù)會覆蓋第一個函數(shù)
舉例:只想導(dǎo)入time模塊中的ctime、time兩個方法,可以按照以下的格式導(dǎo)入:
# 導(dǎo)入模塊中指定的方法 from time import ctime,time # 調(diào)用方法 ctime() time()
注意:使用from導(dǎo)入,如果函數(shù)名相同,后面導(dǎo)入的會覆蓋前面導(dǎo)入的函數(shù)。
- 可以一次性的把一個模塊中的全部數(shù)據(jù)進行導(dǎo)入。 語法格式: from xxx import *
from time import *
1.3 as 關(guān)鍵字
- as關(guān)鍵字:給模塊取別名,有時候?qū)氲哪K的名稱很長,調(diào)用的時候很不方便,使用as關(guān)鍵字就可以給模塊取一個其他的名字。
- 當(dāng)給模塊起了別名之后以前模塊的名字就會失效。
import time as myTime # 使用別名調(diào)用函數(shù),正確 myTime.ctime() # 使用以前模塊的名字調(diào)用,錯誤 time.ctime()
OS模塊操作文件
OS模塊的作用
- 對文件進行重命名、刪除等一些操作,在Python中可以利用os模塊。 os模塊提供了一些系統(tǒng)級別的操作命令
模塊的制作、發(fā)布、安裝
3.1 模塊制作
- Python文件都可以作為一個模塊,模塊的名字就是文件的名字。比如創(chuàng)建一個test.py文件,文件中創(chuàng)建一個add()函數(shù)。此時test.py文件就是一個模塊,可以在其他的python文件中直接引入使用。
- 一個模塊中可以包含函數(shù)、類、變量,也能包含可執(zhí)行的代碼。
- 不同的模塊可以定義相同的變量名,但是每個模塊中的變量名作用域只是在本模塊中。
3.2 模塊的分
內(nèi)置:python已經(jīng)存在的。
自定義:我們自己編寫的功能模塊。
3.3 示例
- 定義一個相加的功能模塊 (addUp.python 文件)
# 定義一個執(zhí)行相加的功能模塊 def add(x, y): return x + y
- 在其他文件中引入并使用這個相加的功能模塊
# 引入相加的功能模塊(給模塊起別名) 引入整個模塊 import addUp as add # 使用引入模塊中的函數(shù) (模塊名.方法名) print(add.add(1, 2)) # 3
# 直接引入模塊中的指定函數(shù) from addUp import add # 使用引入模塊中的函數(shù) (函數(shù)名) print(add(1, 2)) # 3
# 導(dǎo)入模塊中的所有函數(shù) from addUp import * # 使用引入模塊中的函數(shù) print(add(1, 2)) # 3
3.4 測試方法
重點:在功能模塊中對模塊進行測試的時候,需要使用如下的格式
# 定義一個執(zhí)行相加的功能模塊 def add(x, y): return x + y # 測試該模塊中的功能。使用這種形式測試就不會發(fā)生其他文件在使用這個功能模塊的時候輸出這個測試結(jié)果 # 是因為此時被這個 if 條件進行了控制 if __name__ == '__main__': # 測試功能模塊中的函數(shù) res = add(1, 3) print('測試模塊中的add函數(shù)的結(jié)果:%s' % res) # 測試模塊中的add函數(shù)的結(jié)果:4 pass
3.5 all魔術(shù)方法
- 指定對外暴露的功能函數(shù)。
# all 魔術(shù)方法可以存儲讓其暴露在外的函數(shù)們,將一些函數(shù)不對外暴露 # 注意:只有當(dāng)調(diào)用者使用的是 from addUp import * 這種形式的時候all魔術(shù)方法才會生效 # 如果使用 from addUp import multiply ,add ,subtract 方式,all也不會生效 # 如果是使用 import 模塊名 的形式這個 all 不會生效,這個模塊中的所有方法還是全部可以暴露的。 # 總結(jié):all魔術(shù)方法只會對 from addUp import * 這種格式的導(dǎo)入生效 __all__ = ['add', 'subtract'] def add(x, y): return x + y def subtract(x, y): return x - y def multiply(x, y): return x * y # 測試該模塊中的功能 if __name__ == '__main__': # 測試功能模塊中的函數(shù) res = add(1, 3) print('測試模塊中的add函數(shù)的結(jié)果:%s' % res) # 測試模塊中的add函數(shù)的結(jié)果:4 pass
以上就是python中模塊導(dǎo)入模式詳解的詳細內(nèi)容,更多關(guān)于python模塊導(dǎo)入模式的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SublimeText 2編譯python出錯的解決方法(The system cannot find the file
這篇文章主要介紹了SublimeText 2編譯python報The system cannot find the file specified錯誤的解決方法,大家參考使用吧2013-11-11Python&Matla實現(xiàn)模擬退火法的示例代碼
模擬退火和蒙特卡洛實驗一樣,本文主要介紹了Python&Matla實現(xiàn)模擬退火法的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03Django與AJAX實現(xiàn)網(wǎng)頁動態(tài)數(shù)據(jù)顯示的示例代碼
這篇文章主要介紹了Django與AJAX實現(xiàn)網(wǎng)頁動態(tài)數(shù)據(jù)顯示的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02使用pandas對矢量化數(shù)據(jù)進行替換處理的方法
下面小編就為大家分享一篇使用pandas對矢量化數(shù)據(jù)進行替換處理的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04python?PyQt5中QButtonGroup的詳細用法解析與應(yīng)用實戰(zhàn)記錄
在PyQt5中,QButtonGroup是一個用于管理按鈕互斥性和信號槽連接的類,它可以將多個按鈕劃分為一個組,管理按鈕的選中狀態(tài)和ID,本文詳細介紹了QButtonGroup的創(chuàng)建、使用方法和實際應(yīng)用案例,適合需要在PyQt5項目中高效管理按鈕組的開發(fā)者2024-10-10Python3.5基礎(chǔ)之函數(shù)的定義與使用實例詳解【參數(shù)、作用域、遞歸、重載等】
這篇文章主要介紹了Python3.5基礎(chǔ)之函數(shù)的定義與使用,結(jié)合實例形式詳細分析了Python3.5函數(shù)的定義、參數(shù)、作用域、遞歸、重載、內(nèi)置函數(shù)等基本概念與相關(guān)使用技巧,需要的朋友可以參考下2019-04-04Anaconda+vscode+pytorch環(huán)境搭建過程詳解
這篇文章主要介紹了Anaconda+vscode+pytorch環(huán)境搭建過程詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05