第1章:python資料模型
通過實現特殊方法,自定義資料型別可以表現得和內建型別一樣;
__repr__方便除錯和記錄日誌,__str__方便使用者看;
序列資料型別特殊方法使用最多;
第2章:序列構成的陣列
系列型別可分為 可變和不可變、扁平序列和容器序列;
列表推導生成器表示式提供了靈活構建和初始化序列的方式;
元組、切片、array.array、collections.deque。。。
第3章:字典和集合
字典算是python的基石;除dict外,有其他好用的如defaultdict、orderedict、chainmap、counter(屬於collections模組);
對映型別兩個方法:setdefault、update
對映型別api中:__missing__
dict、set背後的雜湊表效率很高;
第4章:文字和位元組序列
乙個字元不等於乙個位元組;
二進位制資料型別:bytes、bytearray、memoryview;unicodeencodeerror、unicodedecodeerror、syntaxerror;
第5章:一等函式
把函式賦值給變數、傳給其他函式、儲存在資料結構中、訪問函式的屬性;
高階函式、列表推導、規約函式;
python有7中可呼叫物件,從lambda表示式建立的簡單函式到實現__call__方法的類例項;
第6章:使用一等函式實現設計模式
可使用一等函式簡化模式實現;
第7章:函式裝飾器和閉包
引數化裝飾器基本上都涉及至少兩層巢狀函式;
要理解裝飾器,需要區分匯入時和執行時、知道變數作用域、閉包和新增的nonlocal宣告;
第8章:物件引用、可變性和垃圾**
每個python物件都有標識、型別和值;
變數儲存的是引用;
cpython中物件的引用計數歸零後會被立即銷毀;
第9章:符合pyhton風格的物件
簡潔勝於複雜;
使用__slots__節省記憶體;
要構建符合python風格的物件,就要觀察真正的python物件;
第10章:序列的修改、雜湊和切片
myseq[a:b:c]原理:建立slice(a, b, c)物件,交給__getitem__方法處理;
模仿python標準物件行為;
第11章:介面:從協議到抽象基類
抽象基類動態特性:虛擬子類、使用__subclasshook__方法動態識別子類;
第12章:繼承的優缺點
內建型別的原生方法使用c語言實現,不會呼叫子類中覆蓋的方法,極少數例外;
多重繼承是雙刃劍;__mro__類屬性中蘊藏方法解析順序;
第13章:正確過載運算子
進製過載內建型別的運算子,而且限於過載現有的運算子(is、and、or、not例外);
第14章:可迭代物件、迭代器和生成器
iter函式;
第15章:上下文管理器和else模組
上下文管理器和with:管理檔案,其他用途、、
contextlib模組裡的函式,@contextmanager裝飾器
第16章:協程
通過客戶呼叫.send(...)方法傳送資料或使用yeild from結構驅動的生成器函式;
第17章:使用期物處理併發
concurrent.futures,asyncio.future;
多執行緒和多程序併發的底層實現;
第18章:使用asyncio包處理併發
使用yeild from、協程、期物和asyncio時間迴圈做併發程式設計;
第19章:動態屬性和特性
動態屬性程式設計;
使用特性處理刪除屬性;
第20章:屬性描述符
託管屬性和儲存屬性;
描述符類與使用函式式程式設計方式構建的特性工廠函式;
第21章:類元程式設計
類元程式設計指動態建立類或定製類;
抽象基類、元類;
流暢的python讀書筆記
1.雖然也可以用列表推導來初始化元組 陣列或其他序列型別,但是生成器表示式是更好的選擇。這是因為生成器表示式背後遵守了迭代器協議,可以逐個地產出元素,而不是先建立乙個完整的列表,然後再把這個列表傳遞到某個建構函式裡。前面那種方式顯然能夠節省記憶體。生成器表示式的語法跟列表推導差不多,只不過把方括號換...
《流暢的Python》讀書筆記(三)
country code my dict.setdefault key,使用 collections.defaultdict import collections index collections.defaultdict list index hunan changsha index defaul...
《流暢的python》讀書筆記(7)
增量賦值運算子 和 的表現取決於它們的第乙個操作物件 背後的特殊方法是iadd 用於 就地加法 但是如果乙個類沒有實現這個方法的話,python 會退一步呼叫 add 如果 a 實現了iadd方法,就會呼叫這個方法。同時對可變序列 例如list bytearray 和 array.array 來說,...