模塊可以讓代碼有邏輯地組織起來。將相關代碼分組到一個模塊中,可以使代碼更易于理解和使用。模塊化編程是指將大型的編程任務分解為單獨的、較小的、更易于管理的子任務或模塊的過程?梢韵衿捶e木一樣將各個模塊拼湊在一起,以創建更大的應用程序。
在大型的編程項目中,模塊化編程有幾個優點。
①簡便性:一個模塊通常不關注整個的龐大問題,而只關注問題的一小部分。如果將大型項目拆成一個個模塊,那么在處理單個模塊時,待解決的問題較小,更容易解決問題。模塊化編程會使開發大型軟件更加容易,并且不易出錯。
②可維護性:模塊通常經過精心設計,以便它們在不同問題域之間建立邏輯邊界。如果以最小化相互依賴性的方式編寫模塊,那么降低了修改單個模塊時對程序其他部分產生影響的可能性。這使得由許多程序員組成的團隊在大型項目上協同工作更加簡單。
③可重用性:單個模塊中定義的功能可以被應用程序的其他部分輕松地重用(通過定義適當的接口)。這樣就不需要編寫重復的代碼。
④作用域:模塊通常定義一個單獨的名稱的空間,這有助于避免程序不同區域中的標識符之間發生沖突。
模塊
在Python中,定義模塊的方式有以下三種:
①使用Python編寫模塊。
②使用C編寫模塊,并在運行時動態加載模塊,如re(正則表達式)模塊。
③內建模塊,固有地包含在Python解釋器中,如itertools模塊。
在這三種方式下,都以相同的方式訪問模塊的內容:使用import語句。本書將重點主要放在用Python編寫的模塊上。使用Python編寫模塊的構建極其簡單,需要做的就是創建一個包含合法Python代碼的文件,然后為該文件命名,.py為擴展名。例如,在當前目錄下新建一個名為module.py的文件:
- s = 'I love Python'
- l = [1, 2, 3]
- def f(arg):
- print(arg)
- class C:
- pass
在module.py中定義了以下對象:
①s是一個字符串。
②l是一個列表。
③f是一個函數。
④C是一個類。
打開交互式解釋器,可以通過導入模塊來訪問這些對象:
- >>> import module # 導入之前定義的模塊
- >>> # 訪問模塊中的對象
- >>> print(module.s)
- I love Python
- >>> module.l
- [1, 2, 3]
- >>> module.f(123)
- 123
- >>> c = module.C()
- >>> c
- <module.C object at 0x10c465710>
模塊搜索路徑
以上述示例的導入模塊語句import module為例,Python解釋器執行import語句時,將從以下路徑中搜索module.py:
①輸入腳本的目錄(如果以腳本模式運行)或當前目錄。
②PYTHONPATH環境變量(如果已設置)中包含的目錄列表(PYTHONPATH的格式取決于操作系統)。
③安裝Python時配置的與安裝相關的目錄列表。
在Python變量sys.path中,可以訪問生成的搜索路徑,該變量是從名為sys的模塊中獲取的:
- >>> import sys
- >>> sys.path
- ['', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip',
- '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7',
- '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload',
- '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
注意,sys.path的實際內容取決于安裝時的情況,因此,在不同計算機上的運行結果可能會有所不同。
為了確?梢哉业侥K,需要執行以下操作之一:
①將module.py放入輸入腳本的目錄(如果以腳本模式運行)或當前目錄。
②在啟動Python解釋器之前,修改PYTHONPATH環境變量,以包含module.py所在的目錄,或者將module.py放入PYTHONPATH環境變量已經包含的目錄中。
③將module.py放入與安裝相關的目錄之一(可能沒有訪問權限,具體取決于操作系統)。
更多內容
>>本文地址:http://www.littlerockbway.com/zhuanye/2021/69826.html
聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?