Pythonä¸å½æ°åæ°çä¼ éæ¯éè¿âèµå¼âæ¥ä¼ éçãä½è¿æ¡è§ååªåçäºå½æ°åæ°ä¼ éçâæç¥é®é¢âï¼å¹¶æ²¡æåçâææ¯é®é¢âï¼ä¹å°±è¯´æ²¡æåçæä¹èµå¼çé®é¢ãå½æ°åæ°ç使ç¨å¯ä»¥å为两个æ¹é¢ï¼ä¸æ¯å½æ°åæ°å¦ä½å®ä¹ï¼äºæ¯å½æ°å¨è°ç¨æ¶çåæ°å¦ä½è§£æçãèåè
åæ¯ç±åè
å³å®çãå½æ°åæ°çå®ä¹æåç§å½¢å¼ï¼
1. F(arg1,arg2,...)
2. F(arg2=<value>,arg3=<value>...)
3. F(*arg1)
4. F(**arg1)
第1 ç§æ¹å¼æ¯æâä¼ ç»âçæ¹å¼ï¼ä¸ä¸ªå½æ°å¯ä»¥å®ä¹ä¸é个æ°åæ°ï¼åæ°ï¼å½¢å¼åæ°ï¼æ¾å¨è·å¨å½æ°ååé¢çå°æ¬å·ä¸ï¼å个åæ°ä¹é´ä»¥éå·éå¼ãç¨è¿ç§æ¹å¼å®ä¹çå½æ°å¨è°ç¨çæ¶åä¹å¿
é¡»å¨å½æ°ååçå°æ¬å·ä¸æä¾ç¸ç个æ°çå¼ï¼å®é
åæ°ï¼ï¼ä¸è½å¤ä¹ä¸è½å°ï¼èä¸é¡ºåºè¿å¿
é¡»ç¸åãä¹å°±æ¯è¯´å½¢ååå®åç个æ°å¿
é¡»ä¸è´ï¼èä¸æ³ç»å½¢å1çå¼å¿
é¡»æ¯å®åä¸ç第ä¸ä½ï¼å½¢åä¸å®åä¹é´æ¯ä¸ä¸å¯¹åºçå
³ç³»ï¼å³âå½¢å1=å®å1 å½¢å2=å®å2...âãå¾ææ¾è¿æ¯ä¸ç§é常ä¸çµæ´»çå½¢å¼ãæ¯å¦ï¼"def addOn(x,y): return x + y"ï¼è¿éå®ä¹çå½æ°addOnï¼å¯ä»¥ç¨addOn(1,2)çå½¢å¼è°ç¨ï¼æå³çå½¢åxå°åå¼1,主å°åå¼2ãaddOn(1,2,3)åaddOn (1)é½æ¯é误çå½¢å¼ã
第2ç§æ¹å¼æ¯ç¬¬1ç§æ¹å¼ï¼å¨å®ä¹çæ¶åå·²ç»ç»å个形åå®ä¹äºé»è®¤å¼ãå æ¤ï¼å¨è°ç¨è¿ç§å½æ°æ¶ï¼å¦æ没æç»å¯¹åºçå½¢å¼åæ°ä¼ éå®åï¼é£ä¹è¿ä¸ªå½¢åå°±å°ä½¿ç¨é»è®¤å¼ãæ¯å¦ï¼âdef addOn(x=3,y=5): return x + yâï¼é£ä¹addOn(6,5)çè°ç¨å½¢å¼è¡¨ç¤ºå½¢åxåå¼6ï¼yåå¼5ãæ¤å¤ï¼addOn(7)è¿ä¸ªå½¢å¼ä¹æ¯å¯ä»¥çï¼è¡¨ç¤ºå½¢åxåå¼7ï¼yåé»è®¤å¼5ãè¿æ¶åä¼åºç°ä¸ä¸ªé®é¢ï¼å¦ææ³è®©xåé»è®¤å¼ï¼ç¨å®åç»yèµå¼æä¹åï¼åé¢ä¸¤ç§è°ç¨å½¢å¼ææ¾å°±ä¸è¡äºï¼è¿æ¶å°±è¦ç¨å°Pythonä¸å½æ°è°ç¨æ¹æ³çå¦ä¸å¤§ç»æ ââå
³å¥åèµå¼æ³ãå¯ä»¥ç¨addOn(y=6)ï¼è¿æ¶è¡¨ç¤ºxåé»è®¤å¼3ï¼èyåå¼6ãè¿ç§æ¹å¼éè¿æå®å½¢å¼åæ°å¯ä»¥å®ç°å¯ä»¥å¯¹å½¢å¼åæ°è¿è¡â精确æ»å»âï¼ä¸ä¸ªå¯å¸¦çåè½æ¯å¯ä»¥ä¸å¿
éµå®å½¢å¼åæ°çåå顺åºï¼æ¯å¦ï¼addOn(y=4,x=6)ï¼è¿ä¹æ¯å¯ä»¥çãè¿ç§éè¿å½¢å¼åæ°è¿è¡å®ç¹èµå¼çæ¹å¼å¯¹äºç¨ç¬¬1ç§æ¹å¼å®ä¹çå½æ°ä¹æ¯éç¨çã
ä¸é¢ä¸¤ç§æ¹å¼å®ä¹çå½¢å¼åæ°ç个æ°é½æ¯åºå®çï¼æ¯å¦å®ä¹å½æ°çæ¶åå¦æå®ä¹äº5个形åï¼é£ä¹å¨è°ç¨çæ¶åæå¤ä¹åªè½ç»å®ä¼ é5个å®åãä½æ¯å¨å®é
ç¼ç¨ä¸å¹¶ä¸è½æ»æ¯ç¡®å®ä¸ä¸ªå½æ°ä¼æå¤å°ä¸ªåæ°ã第3ç§æ¹å¼å°±æ¯ç¨æ¥åºå¯¹è¿ç§æ
åµçãå®ä»¥ä¸ä¸ª*å ä¸å½¢ååçæ¹å¼è¡¨ç¤ºï¼è¿ä¸ªå½æ°å®é
åæ°æ¯ä¸ä¸å®çï¼å¯ä»¥æ¯é¶ä¸ªï¼ä¹å¯ä»¥æ¯N个ãä¸ç®¡æ¯å¤å°ä¸ªï¼å¨å½æ°å
é¨é½è¢«åæ¾å¨ä»¥å½¢åå为
æ è¯ç¬¦çtupleä¸ãæ¯å¦ï¼
对è¿ä¸ªå½æ°çè°ç¨addOn() addOn(2) addOn(3,4,5,6)ççé½æ¯å¯ä»¥çã
ä¸ç¬¬3ç§æ¹å¼ç±»ä¼¼ï¼å½¢åååé¢å äºä¸¤ä¸ª*表示ï¼åæ°å¨å½æ°å
é¨å°è¢«åæ¾å¨ä»¥å½¢å¼å为æ è¯ç¬¦çdictionaryä¸ãè¿æ¶åè°ç¨å½æ°å¿
é¡»éç¨key1=value1ãkey2=value2...çå½¢å¼ãæ¯å¦ï¼
1. def addOn(**arg):
2. sum = 0
3. if len(arg) == 0: return 0
4. else:
5. for x in arg.itervalues():
6. sum += x
7. return sum
é£ä¹å¯¹è¿ä¸ªå½æ°çè°ç¨å¯ä»¥ç¨addOn()æ诸å¦addOn(x=4,y=5,k=6)ççæ¹å¼è°ç¨ã
ä¸é¢è¯´äºåç§å½æ°å½¢å¼å®ä¹çæ¹å¼ä»¥åä»ä»¬çè°ç¨æ¹å¼ï¼æ¯åå¼è¯´çï¼å
¶å®è¿åç§æ¹å¼å¯ä»¥ç»åå¨ä¸èµ·å½¢æå¤æå¤æ ·çå½¢åå®ä¹å½¢å¼ãå¨å®ä¹æè°ç¨è¿ç§å½æ°æ¶ï¼è¦éµå¾ªä»¥ä¸è§åï¼
1. arg=<value>å¿
é¡»å¨argå
2. *argå¿
é¡»å¨arg=<value>å
3. **argå¿
é¡»å¨*argå
å¨å½æ°è°ç¨è¿ç¨ä¸ï¼å½¢åèµå¼çè¿ç¨æ¯è¿æ ·çï¼
é¦å
æ顺åºæâargâè¿ç§å½¢å¼çå®åç»å¯¹åºçå½¢å
第äºï¼æâarg=<value>âè¿ç§å½¢å¼çå®åèµå¼ç»å½¢å¼
第ä¸ï¼æå¤åºæ¥çâargâè¿ç§å½¢å¼çå®åç»æä¸ä¸ªtupleç»å¸¦ä¸ä¸ªæå·çå½¢å
第åï¼æå¤åºæ¥çâkey=valueâè¿ç§å½¢å¼çå®å转为ä¸ä¸ªdictionaryç»å¸¦ä¸¤ä¸ªæå·çå½¢åã
ä¾åï¼
1. def test(x,y=5,*a,**b):
2. print x,y,a,b
å°±è¿ä¹ä¸ä¸ªç®åå½æ°ï¼æ¥ççä¸é¢å¯¹è¿ä¸ªå½æ°è°ç¨ä¼äº§çä»ä¹ç»æï¼
test(1) ===> 1 5 () {}
test(1,2) ===> 1 2 () {}
test(1,2,3) ===> 1 2 (3,) {}
test(1,2,3,4) ===> 1 2 (3,4)
test(x=1) ===> 1 5 () {}
test(x=1,y=1) ===> 1 1 () {}
test(x=1,y=1,a=1) ===> 1 1 () {'a':1}
test(x=1,y=1,a=1,b=1) ===> 1 1 () {'a':1,'b':1}
test(1,y=1) ===> 1 1 () {}
test(1,2,y=1) ===> åºéï¼è¯´yç»èµäºå¤ä¸ªå¼
test(1,2,3,4,a=1) ===> 1 2 (3,4) {'a':1}
test(1,2,3,4,k=1,t=2,o=3) ===> 1 2 (3,4) {'k':1,'t':2,'o':3}