Fluent Python 读书æè®° - Pythonæ°æ®æ¨¡åï¼ç¹æ®æ¹æ³ç¨æ¥ç»æ´ä¸ªè¯è¨æ¨¡åç¹æ®ä½¿ç¨ï¼ä¸è´æ§ä½ç°ãå¦ï¼\_\_len\_\_, \_\_getitem\_\_ - AOP: zope.inteface - å表æ¨å¯¼ï¼list comprehensiveï¼å 表达å¼çæå¨ï¼generator expressionï¼ï¼åå«ç¨ [...] å (...)表æªãåè æ¯è¿ä»£çæï¼æ´èçå åã - å ç»tuple两大åè½ç¹æ§ï¼ä¸å¯åãç¨ä½æ°æ®è®°å½ç»æï¼ä½ç½®ä¿¡æ¯ï¼ãå ç»éçå ç´ æå¥½ä¹æ¯ä¸å¯åæ°æ®ã - array å åè¡¨ç¸æ¯çåºå«åä¼å¿ãarrayåªè½åå䏿°æ®ç±»åï¼æ¯å¦array[int]ï¼èå表æ¯ä»»ä½æ°æ®ç±»åç容å¨ã使¯arrayå¨åå¨ä¸æ´è约å åï¼å 为å®ç°å°±æ¯åé è¿ç»çå åè®°å½äºè¿å¶æ°æ®è¡¨ç¤ºã - dictç setdefaultï¼å¯ä»¥æ¹ä¾¿å¤çå¯è½ä¸åå¨é®ç弿ä½ã - dictç鮿¯å¯æ£åçï¼æ»¡è¶³ä¸ä¸ªæ¡ä»¶ãæ¯æhash()彿°ï¼éè¿\_\_hash\_\_å®ç°ï¼éè¿ \_\_eq\_\_ æ£æµç¸çæ§ï¼è¥ a == bï¼å hash(a) == hash(b) - æ¥æ¶å½æ°åæ°æè è¿å彿°ç彿°å¯ä»¥ç§°ä¸ºé«é¶å½æ° - èªå®ä¹ç±»ä¸éå \_\_call\_\_( ) æ¹æ³ï¼å¯ä»¥æç±»å®ä¾å为å¯ç´æ¥è°ç¨ç彿°å¯¹è±¡ã - pythonä¸çinspect模åï¼æä¾äºå¾å¤å çæ¹æ³ï¼åjavaçreflectå ãsixåºã - operator å functools 模å䏿å¾å¤å®ä¹å¥½çé«é¶å½æ°å¯ä»¥ï¼æ¹ä¾¿ç¼å彿°å¼ä»£ç 飿 ¼ã - æ½è±¡ç±»å¯ä»¥ç»§æ¿abc.ABCï¼ä½¿ç¨ @abstractmethod 修饰ã - å 为å¨Pythonä¸å½æ°ä¹æ¯å¯¹è±¡ï¼å¯ä»¥ç¨æ¥ä¼ ååè¿åï¼æä»¥23ç»å ¸è®¾è®¡æ¨¡å¼å¨Pythonä¸å¯è½ä¸å®å ¨éç¨ï¼æè 以æ´ç®åçæ¹å¼ä½¿ç¨ã - è£ é¥°å¨å½æ°æ¯å¯¼å ¥æ¨¡åæ¶ï¼load moduleï¼æ¶å°±æ§è¡ï¼è䏿¯è¿è¡æ¶æ§è¡ãè¿ä¸ªç¹æ§å¯ç¨äºæ¡æ¶å¤çä¸äºå¯å¨æ³¨åçå·¥ä½ã - å¨åµå¥å½æ°ä¸ï¼å¦æè¦å¼ç¨å¤é¨çä¸å¯åè±¡å¹¶éæ°èµå¼ï¼åéè¦ä½¿ç¨ nolocal å ³é®å声æåéåæä½ã - functools.lru_cache å¯ä»¥ç¼åæä¸ªè®¡ç®ä»£ä»·å¾å¤§ç彿°ç»æã - functools.singledispatch å¯ä»¥ååºç±»ä¼¼Java䏿¹æ³éè½½ç代ç - @classmethod å @staticmethod çåºå«ãåè 第ä¸ä¸ªåæ°æ¯Classæ¬èº«ï¼åè å°±æ¯ä¸æ®é彿°ã - @Property 设置getter/setter屿§ - Python䏿¥å£ï¼æ¯æâé¸åç±»åâåè®®ï¼å³ä¸ä¸ªç±»å ·æç¸ä¼¼çè¡ä¸ºï¼ä½è·ç»§æ¿æ²¡æä»ä¹å ³ç³»ã使¯æ½è±¡ç±»ï¼æ¥å£ï¼å¨ç°å®ä¸ç䏿¯åå¨çï¼æä»¥å¯ä»¥éè¿ abc.ABC æ¥å®ä¹æ½è±¡åºç±»ã - ä¸è¦ç´æ¥ç»§æ¿å ç½®çç±»ï¼æ¯å¦ list, dictãå 为继æ¿å 置类ï¼åç±»éåçæ¹æ³å¦æéè¿pythonåè®®è°ç¨ï¼ä¸ä¼ä½¿ç¨åç±»çæ¹æ³ãæ¯å¦ A extends list, Aéåäº \_\_len\_\_ï¼ä½æ¯è°ç¨ len(a) è¿æ¯ä½¿ç¨listçå ç½®æ¹æ³ãè§£å³åæ³æ¯ä½¿ç¨ pypyä¸çç±»ï¼æ¯å¦collections.abcä¸çç±»ã - for/while/try - else æ´åºè¯¥æ for/while/try - then è¯ä¹çè§£æ´å¥½äºã - GILæCPythonå®ç°ä¸æ¬¡åªå 许使ç¨ä¸ä¸ªçº¿ç¨æ§è¡Pythonåèç ï¼å 为CPythonè§£é卿¬æ¥ä¸æ¯å®å ¨çã使¯å¯¹äºIOå¯éååºæ¯æ 害ï¼å 为æ ååºä¸ææé»å¡IOé½ä¼éæ¾GIL(global interpreter locl)ã使¯CPUå¯éå计ç®å伿影åã