IPython 快捷方式,提示和技巧
IPython(和 Jupyter Notebook)定義了下劃線的特殊含義。它始終包含最新的輸出。這在以多個步驟處理資料時非常有用。這在上面的例子中得到證明。要清理文字,它會通過一些正規表示式執行,然後在拆分之前進行標準化。在 IPython 之外,每個結果都必須儲存在一個新變數或巢狀的步驟中。在 IPython 中,我們經常探索並跟蹤變數或重現一系列巢狀呼叫是乏味的。所以這就是下劃線出現的地方。
有一個問題。如果為全域性範圍中的下劃線指定值,則會導致意外行為。例如:
address = ('http://example.com', 80)
(_, port) = address
在這裡,我只對元組中的第二個元素 - 埠號感興趣。所以我遵循約定並將第一個元素分配給下劃線以表明它是一次性的。但是,現在下劃線的值是 http://example.com
。如果我要執行更多程式碼:
1+4
下劃線的預期值為 5.但是,它不是。該值仍然是元組中的域。當你在全域性範圍內分配下劃線時,它不僅會破壞該值,還會停止儲存最新的輸出。如果在函式或迴圈內分配下劃線,則不是這種情況。