元類(metaclass)及動態屬性(dynamic attribute)都是很強大的Python特性,而後他們也可能致使及其古怪、及其忽然的行爲。本節講解這些機制的常見用法,以確保各位程序員寫出來的代碼符合最小驚訝原則(rule of least surprise)。程序員
第二十九條:用純屬性取代get和set方法get
第三十條: 考慮用@property來代替屬性重構ast
第三十一條:用描述符來改寫須要複用的@property方法class
第三十二條:用__getattr__、__getattribute__和__setatr__實現按需生成的屬性重構
第三十三條:用元類來驗證子類meta
第三十四條:用元類來註冊子類程序
第三十五條:用元類來註解類的屬性方法