Python筆記10-模塊

【模塊】

在D:\python 目錄中創建 hello.py

然後,就可以如下操作:

(此時,D:/python 目錄下會多一個 “hello.pyc” 文件,是已經編譯過的文件)

但是,如果再次import hello,就什麼都沒有了:

如果堅持需要再次導入,使用:hello = reload(hello)

【在模塊中定義函數】

(1)可以用同樣的方法來使用任何在模塊的全局作用域中定義的名稱(代碼重用)。

(2)在模塊中增加測試代碼——用來檢查模塊本身是否正常工作的測試代碼。使用 __name__ 變量。

 

【讓模塊可用】

理想狀態下,一開始sys.path 本身就應該包含正確的目錄,那麼需要:

① 將模塊放置在合適的位置:

◆ 搜索路徑目錄的列表可以在sys模塊中的path變量中找到:

◆ 上面的結果中,site-packages 目錄是最佳選擇。只要將模塊放入此目錄,所有程序都能自動導入了。

◆ pprint模塊中的pprint函數可以替代普通的print語句,可以多行打印,能夠提供更加智能的打印輸出。

②告訴解釋器去哪裏查找需要的模塊。

標準的實現方法是在PYTHONPATH環境變量中包含模塊所在的目錄。(具體怎麼做,用到的時候再去查,因爲windows下和Linux下的實現方式不一樣!)

【包(package) 】

包——基本上就是另外一類模塊,而且能包含其他模塊。當模塊存儲在文件中時(擴展名.py),包 就是模塊所在的目錄。 __init__py文件。例如有個名爲 constants的包,文件 constant/__init__.py包括語句 PI=3.14,那麼可以:import constants; print constants.PI;

【研究模塊】

查看模塊包含的內容可以使用 dir 函數,會將對象的所有特性列出,結果是一長串名字:

可以使用列表推導式過濾(包含結果中所有不以下劃線開頭的名字的列表):

◆ __all__ 變量:

◆ help() 函數:

例如:

help(copy); #返回一大堆信息

help(copy.copy)

print copy.copy.__doc__

print range.__doc__

◆ 使用源代碼:閱讀標準模塊copy的源代碼,一種方法是 檢查 sys.path然後自己找;另外一種快捷方法是 檢查模塊的 __file__ 屬性(打開對應的.py文件)。

【標準庫】

(1)sys 模塊能夠訪問與Python解釋器聯繫緊密的變量和函數。

使用方法: sys.argv; sys.exit;

例如(10/01.py):反序打印命令行參數,參數會放置在sys.argv列表中,腳本的名字爲 sys.argv[0]。

(2)os 模塊提供了訪問多個操作系統服務的功能。os 和 它的子模塊 os.path 還包括一些用於檢查、構造、刪除目錄和文件的函數。

(3) fileinput 模塊——能夠遍歷文本文件的所有行。

【集合】

(1)集合 Set —— 直接創建集合即可。

(2)集合是由序列構建的,其副本是被忽略的。

(3)同字典,集合元素的順序是隨意的。

(4)計算兩個集合的並集,使用union方法,或者 | 運算符。

(5)集合的一些其他方法和對應的運算符:

【堆】

堆 —— 是“優先隊列”的一種,使用優先隊列能夠以任意順序增加對象,並且能在任何時間找到最小的元素。Python中只有一個包含一些堆操作函數 的模塊,叫做 heapq,包含6個函數。

(1)heappush 函數 用於增加堆的項,只能用於通過各種堆函數建立的列表中。

(2)heappop 函數 彈出最小的元素。

(3)heapify 函數 使用任意列表作爲參數,並且通過儘可能少的移位操作,將其轉換爲合法的堆。

(4)heapreplace 函數 彈出堆的最小元素,並且將新元素推入,這樣比 調用heappop之後再調用heappush更高效。

【雙端隊列】deque

雙端隊列——在需要按照元素增加的順序來移除元素時非常有用。雙端隊列通過可迭代對象(比如集合)創建。

【time】

time 模塊所包含的函數能夠實現以下功能:獲得當前時間、操作時間和日期、從字符串讀取時間以及格式化時間爲字符串。

(1)time.asctime() 將當前時間格式化爲字符串:

【random】

random模塊包括返回隨機數的函數。

【shelve】

shelve是一額簡單的數據存儲方案,他只有一個函數就是open(),這個函數接收一個參數就是文件名,然後返回一個shelf對象,你可以用他來存儲東西,就可以簡單的把他當作一個字典,當你存儲完畢的時候,就調用close函數來關閉。

【re】正則表達式

(小結)

【代碼】https://github.com/rxbook/study-python/tree/master/10

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章