首頁 >後端開發 >Python教學 >為什麼 Python 列表突變方法回傳「None」?

為什麼 Python 列表突變方法回傳「None」?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-28 12:49:12716瀏覽

Why Do Python List Mutation Methods Return `None`?

為什麼清單突變在Python 中返回None

當使用諸如追加、排序、擴展、刪除、清除和反轉等方法操作Python 列表時,會遇到一種奇怪的行為:這些操作就地修改列表並傳回None 而不是更新後的列表。

這個設計選擇是由 Python 中的一個基本原則驅動的:函數就地改變物件應該回傳 None。這強調了這樣一個事實:在此類操作期間不會建立新物件。

Python 的創建者 Guido van Rossum 在 Python-Dev 郵件列表上詳細解釋了他的基本原理。他反對以簡潔的方式將副作用連結到單一物件上,因為它可能會模糊讀者對程式碼意圖的理解。例如,考慮以下程式碼:

x.compress().chop(y).sort(z)

這相當於:

x.compress()
x.chop(y)
x.sort(z)

Van Rossum 認為第二種形式更清晰,因為它明確地表明每個操作都被應用到同一個變數x.

另一方面,連結的使用保留用於傳回新值的操作,例如字串處理操作:

y = x.rstrip("\n").split(":").lower()

儘管某些函式庫模組(如pstat)可能會鼓勵副作用調用的鏈接,但Van Rossum 斷言,對於標準庫的新添加,不鼓勵這種做法。

以上是為什麼 Python 列表突變方法回傳「None」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn