元组的装包与拆包
Pythonä¸ï¼Œå…ƒç»„装包拆包是自动的,ä¸�需è¦�任何函数,导致很多人对于函数返回值一会有括å�·ä¸€ä¼šæ²¡æ‹¬å�·é�žå¸¸è¿·æƒ‘
先看代ç �:
a=1,2,3 #它其实ç‰ä»·äºŽä¸‹é�¢çš„代ç � a=(1,2,3) #å› ä¸ºç‰å�·å·¦è¾¹å�ªæœ‰1个å�˜é‡�,而ç‰å�·å�³è¾¹æœ‰3ä¸ªå€¼ï¼Œå› æ¤è‡ªåŠ¨è£…åŒ…æˆ�为一个元组
å†�看下é�¢çš„代ç �:
a,b,c=(1,2,3) #自动拆包,得到a=1,b=2,c=3
当函数return的时候,其实�能return一个值,并�能return多个值
有人会问,我return了多个值也没有报错啊,è¿�行很æ£å¸¸
é‚£æ£æ˜¯å› 为Pythonå°†å¤šä¸ªè¿”å›žå€¼è‡ªåŠ¨è£…åŒ…é€ æˆ�çš„
å› æ¤å½“ä½ è¿”å›žå¤šä¸ªå�˜é‡�,而外é�¢å�ªç”¨ä¸€ä¸ªå�˜é‡�去接收,会接收到一个元组
è€Œå½“ä½ ç”¨å¤šä¸ªå�˜é‡�去接,就能对应的接收到æ¯�ä¸ªå€¼ï¼Œè¿™æ˜¯å› ä¸ºè‡ªåŠ¨æ‹†åŒ…
ç�†è§£äº†è¿™ä¸€ç‚¹ï¼Œå¯¹äºŽç�†è§£å‡½æ•°è¿”回值ã€�å—å…¸ä¸çš„键值对ç‰ç‰éƒ½æ˜¯æœ‰å¸®åŠ©çš„
=========================================================
ä¸ºäº†åŠ å¼ºç�†è§£ï¼Œå†�看最å�Žä¸€ç»„代ç �:
a=10 b=20 a,b=b,a,1
执行会报错:too many values to unpack
è¿™é‡Œå¾ˆæ˜Žæ˜¾çš„ï¼Œå‘Šè¯‰ä½ å…ƒç»„é‡Œæœ‰3个值需è¦�æ‹†åŒ…ï¼Œè€Œä½ å�ªç”¨2个值去接收,è¯�明了元组确实执行了一个拆包的动作