åå æå¤ç§ãé¦å
æ¯pythonä¸å ä¹ææçä¸è¥¿çä¸çº§å¯¹è±¡ï¼ä¸çº§å¯¹è±¡çå®ä¹ï¼
http://en.wikipedia.org/wiki/First-class_objectï¼ï¼methodä¹ä¸ä¾å¤ï¼æ¯å¦ä½ åä¸ä¸ª:
class X:
ãdef f(self, a, b):
ãã...
é£ä¹å¯ä»¥è¿æ ·å¼ç¨fï¼
X.__dict__['f']
æè
X.f.__func__
ç°å¨é®é¢æ¥äºï¼å¾å°f以åæä¹è°ç¨ï¼fæ¯ä¸ä¸ªæ¹æ³ï¼æ¹æ³å¿
é¡»ä½ç¨äºå¯¹è±¡ãå¦æxæ¯ä¸ä¸ªX对象ï¼æ们å¯ä»¥x.f(...)ï¼ä½æ¯å¦ææ¯ä»¥ä¸é¢çæ¹å¼å¾å°çfå¢ï¼æä¹f让ä½ç¨äºæ个对象ï¼æç´è§çæ¹æ³å°±æ¯ååæ°ä¸èµ·ä¼ éè¿å»ã
å½ç¶çéä¸åç设计ä¹å¯ä»¥æ»¡è¶³ä¸é¢å¶ãæ¯å¦ä¸è¦æåçselfåæ°ï¼å¢å thiså
³é®åï¼å¢å ä¸ä¸ªè°ç¨fä¸ªæ ¼å¼ãè¿æ ·ç设计åpep20第äºæ¡ä¸ç¬¦åã
为ç解pythonçselfï¼ä¸å¦¨å¯¹æ¯ä¸ä¸rubyåjavascriptãrubyçæ¹å¼æ¯æ¹æ³ä¸æ¯ä¸çº§å¯¹è±¡ï¼æ以ç»è¿äºè¿ä¸ªé®é¢ãjavascript没æç±»ï¼æ¹æ³å¨è°ç¨æ¶thisä¼ç»å®å°æ¹æ³æå±ç对象ï¼å½æ°è°ç¨æ¶thisç»å®å°windowï¼å½æ°åæé å¨è°ç¨æ¶thisç»å®å°æ°å¯¹è±¡ãè¿ä¹å¤è§åï¼æ¯Pythonå¤æã