python怎么加逗号_Python 逗号的巧用
如果需要在Python中的列表、字典或集合常量中添加或移除項,記住一個竅門:在所有行后面都添加一個逗號。
還不太明白?來看一個示例。假設在代碼中有下面這個由名字組成的列表:
在修改這個名字列表時,通過git diff查看改動可能有點不方便。大多數源碼控制系統都是基于行的,因此無法標出同一行中的多個改動。
一個快速改進是根據編碼規范,將列表、字典或集合常量分割成多行,如下所示:
這樣每項獨占一行,因此可以清楚地從源碼控制系統的diff中看出哪里進行了添加、刪除和修改操作。雖然只是一個小改動,但我發現這有助于避免很多愚蠢的錯誤,也讓團隊成員能夠更方便地審閱我的代碼改動。
但現在依然有兩個編輯情形會導致混亂,即在列表末尾添加或移除內容時,還需要手動調整逗號來保持格式的一致性。
比如需要向列表中添加一個名字Jane,則需要在Dilbert這一行的末尾添加一個逗號來避免一個討厭的錯誤:
在查看這個列表的內容時,請做好心理準備:
可以看到,Python將字符串Dilbert和Jane合并成了DilbertJane。這稱為字符串字面值拼接,是文檔中有記錄的刻意行為。這種行為可能會在程序中引入令人難以琢磨的bug:
以空白符分隔多個相連的字符串或byte字面值,即使它們各自使用不同的引號,也會執行拼接操作。
詳見Python文檔:“String literal concatenation”。
在某些情況下,字符串字面值拼接是一個有用的特性。例如,在跨越多行的長字符串中可以省去反斜杠:
但另一方面,這個特性有時又會成為負擔。那么如何解決這個問題呢?
在Dilbert后添加缺失的逗號就能避免兩個字符串合并了:
現在回到原來的問題。為了向列表添加一個新名字,需要修改兩行代碼。這同樣讓開發人員很難從git diff看出到底做了什么改動:到底是添加了一個新名字,還是修改了Dilbert這個名字?
幸運的是Python語法留有余地,讓我們可以一勞永逸地解決這個逗號放置問題。只要遵循一種能夠避免這個問題的編碼風格即可,下面來看具體方法。
在Python中,可以在列表、字典和集合常量中的每一項后面都放置一個逗號,包括最后一項。因此只要記住在每一行末尾都加上一個逗號,就可以避免逗號放置問題。
下面是示例的最終版:
看到Dilbert后面的那個逗號了嗎?現在能方便地添加或移除新的項,無須再修改逗號了。這不僅讓各行代碼保持一致,而且源碼控制系統生成的diff清晰整潔,讓代碼審閱者心情愉悅。看到沒,有時魔法就藏在這些細微之處。
關鍵要點
合理的格式化及逗號放置能讓列表、字典和集合常量更容易維護。
Python的字符串字面值拼接特性既可能帶來幫助,也可能引入難以發現的bug。
總結
以上是生活随笔為你收集整理的python怎么加逗号_Python 逗号的巧用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装sql错误:系统找不到指定路径
- 下一篇: 用python来吐槽,真是太会玩啦