一:模組介紹
一:可以被當作指令碼去執行
二:可以被當作模組匯入
1,什麼是模組:
模組是一系列功能的集合體
常見的模組形式 (自定義模組,第三方模組,內建模組)
1、乙個module.py檔案就是乙個模組,檔名是module.py,而模組名是module
2、乙個包含有__init__.py檔案的資料夾也是模組
3、已被編譯為共享庫或dll的c或c++擴充套件
4、使用c編寫並鏈結到python直譯器的內建模組
2、為什麼要用模組
1、用第三方或者內建的模組是一種拿來主義,可以極大地提公升開發效率
2、自定義模組即將我們自己程式中需要用到的公共的功能寫入乙個python檔案
然後程式的各部分元件可以通過匯入的方式來引用/重用自定義模組中的功能
3、如何用模組
匯入的方式有兩種
import 模組名
from 模組名 import 具體的功能
4,首次匯入模組的注意事項
1, import 模組名
# 首次匯入模組發生了3件事:
#1、以模組為準創造乙個模組的命名空間
#2、執行模組對應的檔案,將執行過程中產生的名字都丟到模組的命名空間
#3、在當前執行檔案中拿到乙個模組名
# 之後的重複匯入會直接引用之前創造好的結果,不會重複執行模組的檔案
# import spam #spam=spam=模組命名空間的記憶體位址
2,from 模組名 import ......
# from ... import ...首次匯入也發生了三件事:
#1、以模組為準創造乙個模組的命名空間
#2、執行模組對應的檔案,將執行過程中產生的名字都丟到模組的命名空間
#3、在當前執行檔案的命名空間中拿到乙個名字,該名字直接指向模組中的某乙個名字,意味著可以不用加任何字首 而直接使用
注意兩者匯入的優缺點:
# from .... import ... 對比 import 。。。
# 優點:不用加字首,**更為精簡
# 缺點:容易與當前執行檔案中命名空間中的名字衝突
兩者相同點:
# 1、都會執行模組對應的檔案,都會產生模組的命名空間
# 2、呼叫功能時,需要跑到定義時尋找作用域關係,與呼叫位置無關
# 不同點
# 1、一種需要加字首,一種不需要加字首
x=1def f1():
print('from f1')
def f2():
print('from f2')
print(__name__)
# 在aaa.py被直接執行的時候__name__== '__main__'
# 在aaa.py被當作模組匯入的時候__name__== 'aaa'
# 在aaa.py被直接執行的時候呼叫f1跟f2
# f1()
# f2()
# 在aaa.py被當作模組匯入的時候不呼叫f1跟f2
# if __name__ == '__main__':
# f1()
# f2()
二:模組的搜尋路徑
乙個py檔案就是乙個模組,在匯入時必須從某乙個資料夾下找到該py檔案
模組的搜尋路徑指的就是在匯入模組時需要檢索的資料夾們
匯入模組時查詢模組的順序是:
1、先從記憶體中已經匯入的模組中尋找
2、內建的模組
3、環境變數sys.path中找
強調:sys.path的第乙個值是當前執行檔案的所在的資料夾
三:面向過程思想
核心過程二字,過程指的是解決問題的步驟,即先幹什麼、再幹什麼、然後幹什麼...
基於該思想編寫程式就好比在設計一條流水線,是一種機械式的思維方式
優點複雜的問題流程化、進而簡單化(大多使用在程式的框架設計上)
缺點擴充套件性極差
面向過程程式設計和物件導向程式設計
面向過程程式設計和物件導向程式設計 面向過程程式設計是一種以 過程為中心 的程式設計思想 分析出解決問題的步驟,然後用函式把這些步驟一步一步實現 面向過程程式設計,資料和對資料的操作是分離的。物件導向程式設計 物件導向程式設計是 將事物物件化,通過物件通訊來解決問題 物件導向程式設計,資料和對資料的...
面向過程程式設計和物件導向程式設計
面向過程程式設計和物件導向程式設計 一 面向過程程式設計 面向過程程式設計將程式分成了 資料 和 處理函式 兩部分,程式以 處理函式 為核心,如果要執行什麼操作,就將 資料 傳給相應的 處理函式 返回我們需要的結果 面向過程的思路很好掌握,上手容易,但它存在三方面的問題 1 資料和處理函式沒有直接的...
《面向過程和物件導向的程式設計》
關於寫 面向過程和物件導向的程式設計 這個話題我很矛盾,我擔心許多程式設計師對此話題不太感興趣,可能他們不太懂得面向過程和物件導向程式設計的巨大差距,以及對程式設計水平的影響。在我整個程式設計生涯中,有無數的轉變和變化讓我銘記在心。從彙編到 c語言,從檔案系統到資料庫,從 c語言倒 dbase,從c...