#ç±»çç»è
åé¢å¯¹ç±»çæå
³å
å®¹å·²ç»æè¿°ä¸å°äºï¼å
¶å®è¯é¢è¿è¿æ²¡æç»æï¼ä¸è¿å¯¹äºåå¦è
ï¼ææ¡è¿äºå·²ç»ç®æ¯å
¥é¨ï¼å¨ä»¥åçå®è·µä¸ï¼è¿éè¦è¿è¡ä½ä¼åææã
è¿å 天åå 个æå以åç§éå¾è®¨è®ºè¿OOPçç¸å
³é®é¢ï¼ä»ä»¬æ¯ï¼ä»¤çè«ãFrankãæåãå°å¯
大家对OOPæä¸åçæ³ï¼æè°å·¥ç¨æ´¾åå¦é¢æ´¾çæ³ä¸ä¸è´ãä»åºç¨çè§åº¦çï¼å·¥ç¨æ´¾çè§ç¹æ¯å¼å¾æ¨èçï¼é£å°±æ¯ï¼ä¸ç¨å¤ªå¨æå
鍿¯æä¹å·¥ä½çï¼åªè¦è½å¤è§£å³ç¼ä¸çé®é¢å³å¯ã使¯ï¼å¯¹äºå¦ä¹ è
èè¨ï¼å¦æä»
ä»
åçå¨å·¥ç¨æ´¾çå±é¢ï¼ç¹å«æéï¼ä¸è¿°å 使å齿¯å·¥ç¨æ´¾çå¤§ä¾ ï¼ä»ä»¬å¯ä¸æ¯ç®åå°è½å¤ä½¿ç¨ï¼å
¶å®æ¯æ´é«å±æ¬¡çâæ æèææâï¼ï¼å¦ä¹ è
å¯è½æè§æç¹ä¸éå½»ãæä»¥ï¼å¦ä¹ è
ï¼ç¹å«æ¯åå¦è
ï¼è¦ç¥éä¸äºå
é¨åå ï¼ä½æ¯ä¹å«ä¸ºäºé»ç å
é¨åå èå¿è®°äºåºç¨çç®çãçæ¥ä¸¤è
åè°è¿æ¯ä¸ä¸ªé¾åçäºæ
ãä¸ç¨çæ¥ï¼éçå®è·µçæ·±å
¥ï¼å°±éæ¸æä½ä¼äºã
ä¸é¢ææ ¹æ®MARK LutzçãLearning Pythonãä¸çâ大å¸ç¼ä¸çOOPâï¼åä¸äºä½¿ç¨OOPç常è§åå ã
- 代ç éç¨ãè¿æ¯å¾ç®åï¼å¹¶ä¸æ¯ä½¿ç¨OOPçæä¸»è¦åå ï¼ãéè¿æ¯æç»§æ¿ï¼ç±»å
许éè¿å®å¶æ¥ç¼ç¨ï¼è䏿¯æ¯æ¬¡é½ä»å¤´å¼å§ä¸ä¸ªé¡¹ç®ã
- å°è£
ãå¨å¯¹è±¡æ¥å£åå
è£
å
¶å®ç°çç»èï¼ä»èé离äºä»£ç çä¿®æ¹å¯¹ç¨æ·äº§ççå½±åã
- ç»æãç±»æä¾äºä¸ä¸ªæ°çæ¬å°ä½ç¨åï¼æå°åäºåéåå²çªãä»ä»¬è¿æä¾äºä¸ç§ç¼å忥æ¾å®ç°ä»£ç ï¼ä»¥åå»ç®¡çå¯¹è±¡ç¶æçèªç¶åºæã
- ç»´æ¤æ§ãç±»èªç¶èç¶å°ä¿è¿äºä»£ç çåè§£ï¼è¿è®©æä»¬åå°äºåä½ãå¯¹äºæ¯æç±»çç»æä»¥å代ç éç¨ï¼è¿æ ·æ¯æ¬¡åªéè¦ä¿®æ¹ä»£ç ä¸ä¸ä¸ªæ·è´å°±å¯ä»¥äºã
- ä¸è´æ§ãç±»åç»§æ¿å¯ä»¥å®ç°éç¨çæ¥å£ãè¿æ ·ä»£ç ä¸ä»
æäºç»ä¸çå¤è¡¨åè§æï¼è¿ç®åäºä»£ç çè°è¯ãç解以åç»´æ¤ã
- 夿ãå¤æè®©ä»£ç æ´çµæ´»åæäºå¹¿æ³çéç¨æ§ãï¼è¿ä¼¼ä¹æ¯OOPç屿§ï¼ä¸æ¯ä½¿ç¨å®ççç±ï¼
ä¸ç®¡æä¹æ ·ï¼ç±»æ¯ä¸ä¸ªé常éè¦çä¸è¥¿ï¼çå®å¨å¦ä¹ çæ¶åï¼ä¸å®è¦å¤å è¿ç¨ã
æ¤å¤ï¼å¯¹äºpython2æ¥è¯´ï¼è¿æä¸ä¸ªå«åâæ°å¼ç±»â(new-style)çä¸è¥¿ï¼è¿ä¸ªå¯¹åºäºåé¢è®²è¿çç±»ï¼é£ä¹åé¢è®²è¿ç类就称为âç»å
¸â(classic)ç±»ã使¯ï¼å¯¹äºPython3æ¥è®²ï¼æ²¡æè¿ç§åºå«ï¼äºè
èåãåªæ¯å¨Python2ä¸ï¼ä¸¤ä¸ªæ¯æåºå«çãæ¬æç¨å¨åºç¡é¨åï¼ä¾ç¶ä¸è®²ææ°å¼ç±»çé®é¢ï¼å¦æç宿å
´è¶£ï¼å¯ä»¥èªå·±å¨GOOGLE䏿¥æ¾æå
³èµæï¼ä¹å¯ä»¥éçæ¬è¯¾ç¨æ·±å
¥ï¼å°ä¸ä¸ä¸ªé¶æ®µæ¥å¦ä¹ ã
##ç»å®åæ ç»å®æ¹æ³
ç宿¯å¦è¿è®°å¾ï¼å¨å¦ä¹ ç±»çæ¹æ³çæ¶åï¼æå°è¿ï¼ç±»çæ¹æ³å°±æ¯å½æ°ï¼åªä¸è¿è¿ä¸ªå½æ°çè¡¨ç°æç¹è·åé¢å¦è¿ç彿°ä¸ä¸æ ·ï¼æ¯å¦æä¸ªselfãå½ç¶ï¼ä¹ä¸æ¯å¿
é¡»è¦æçï¼ä¸é¢çå®å°±ä¼çå°æ²¡æselfçãæ¢ç¶æ¹æ³å彿°ä¸æ ·ï¼æ¬è´¨ä¸é½æ¯å½æ°ï¼é£ä¹ï¼å½æ°é£é¨åå¦ä¹ çæ¶åå·²ç»æç¡®äºï¼å½æ°æ¯å¯¹è±¡ï¼æä»¥ï¼ç±»æ¹æ³ä¹æ¯å¯¹è±¡ãæ£å¦åæè¯´çï¼ç±»çæ¹æ³ä¸ï¼æçå¯ä»¥æselfï¼æçå¯ä»¥æ²¡æã为äºè¿è¡åºå«ï¼è¿ä¸æ¥åäºè¿æ ·çå®ä¹ï¼
- æ ç»å®ç±»æ¹æ³å¯¹è±¡ï¼æ self
- ç»å®å®ä¾æ¹æ³å¯¹è±¡ï¼æself
###è°ç¨ç»å®å®ä¾æ¹æ³å¯¹è±¡
>>> class MyClass:
... def foo(self,text):
... print text
...
å¯ä»¥ç¨ä¸é¢çæ¹å¼è°ç¨å®ä¾æ¹æ³
>>> a = MyClass() #å建类å®ä¾
>>> a.foo('qiwsir.github.io') #è°ç¨å®ä¾æ¹æ³
qiwsir.github.io
>>> a.foo