標籤:產生 maxsize 傳回值 intro type list dir href pdb
python進階
原書內容https://github.com/eastlakeside/interpy-zh
通過記錄書本目錄和大概內容做一個記錄,方便以後回顧檢索。
| Chapter |
Title |
Brief |
More |
| 1 |
*argv和**kwargv |
給函數輸入可變參數 |
argv為列表,kwargv為字典 |
| 2 |
調試pdb |
代碼層面下斷點調試 |
|
| 3 |
產生器 |
定義了__iter__或__getitem__的為可迭代對象,定義了__next__的為迭代器 |
yeild的用處 |
| 4 |
Map, Filter and Reduce |
|
- map會將一個函數映射到一個列表上的所有函數,map(function_to_apply, list_of_outputs)。python3返回一個迭代器,list返回列表。 - filter過濾列表中的元素,並且返回一個由所有符合要求的元素所構成的列表。 - reduce可以對一個列表進行一些計算並返回結果,類似歸併。 |
| 5 |
set資料結構 |
set不能包含重複元素 |
- 交集:set1.intersection(set2) - 差集:set1.difference(set2) |
| 6 |
裝飾器 |
在執行一個函數期間需要執行其他動作,可以使用裝飾器,更簡單的就是定義裝飾器然後使用@ |
|
| 7 |
對象變動Mutation |
|
注意預設值,且python預設值只初始一次 |
| 8 |
__slots__魔法 |
|
節省小類的資源 |
| 9 |
虛擬環境 |
virtualenv |
|
| 10 |
Collections |
defaultdict, counter, deque, namedtuple, enum.Enum |
|
| 11 |
枚舉 Enumerate |
|
|
| 12 |
對象自省(introspection) |
dir, type, id, inspect |
|
| 13 |
推導式(comprehension) |
從一種資料序列構建另一種新的資料序列的結構體 eg. list, dict, set |
集合的推倒式為{},因為()產生的是迭代器 |
| 14 |
異常 |
try, except, finally, else |
不管觸不觸發異常都執行finally,異常不觸發執行else |
| 15 |
lambda運算式 |
lambda 參數: 操作(參數) |
|
| 16 |
一行式 |
簡易WebServer 漂亮的列印 指令碼效能分析 csv轉json 列表flat 一行構造器 |
python3 -m http.server from pprint import pprint python -m cPorfile my_script.py ... |
| 17 |
for else |
當迴圈完整執行後執行else語句 |
|
| 18 |
使用C擴充 |
Ctypes, SWING, Python/C API |
|
| 19 |
協程 |
如果迭代器是資料的產生者,那麼協程就是消費者 |
line = (yield), 通過外部send給協程,就可以執行後續的if pattern in line,關閉用close() |
| 20 |
函數緩衝 |
函數緩衝允許我們將一個函數對於給定參數的傳回值緩衝起來 |
@lr_cache(maxsize=32), 清除緩衝使用function.cache_clear() |
| 21 |
上下文管理(with文法) |
基於類實現__enter__和__exit__ 處理異常 基於產生器@contextmanager |
|
[Book Content]Python進階