Effective Python提供90條新穎的Python3編程技巧,可以讓我們寫程序更加靈活,代碼更加整潔而易于維護,這對于商業化系統代碼的重要性不言而喻。
前面兩條主要介紹切片的實用好玩的用法,這一條里反而建議不用切片,這是什么場景呢?這個場景其實也很常見,就是從一個元組中取出位于起始或結束位置的其中某幾項,這樣的場景其實很常見,我們最容易想到的方法就是切片,通過切片把需要的部分切出來,然后通過下標進行索引訪問數組元素。
但是這樣寫起來有些繁瑣,程序不是很簡潔清晰,所以作者推薦了用帶星號的unpacking方法,也就是帶通配符的拆分,直接一步到位搞定。unpacking我們介紹的之前的條目中有講解,可以把一個元組通過unpacking操作直接拆解成多個變量,直接使用,免去數組下標的索引的麻煩,但這個unpacking有個限制,就是必須要求拆分的變量數目和順序必須和元組元素數量相同。
用帶星號的unpacking,可以把需要取出的元素用普通變量列出,其余用一個帶星號變量列出,用來表示其余所有元素,而不用關心有多少個。這樣代碼就整潔清晰多了,對于維護修改又不必關心數組長度或者其他元素是否被改動過,從而避免了不必要的邏輯錯誤的出現。
另外需要再說明下帶星號的拆分要注意的兩點:一個是拆分出來的必須要有普通變量,不能只有一個帶星變量,這樣會報錯,另外第二個就是不能同時包括兩個帶星變量,這樣會導致系統搞不清楚要定位到哪里。