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

為什麼Python的列表修改方法回傳「None」?

Susan Sarandon
Susan Sarandon原創
2024-12-20 18:29:13839瀏覽

Why Do Python's List Modification Methods Return `None`?

為什麼 Python 列表方法回傳 None 而不是列表?

修改清單方法(如追加、排序、擴充、刪除、清除和反轉)通常會傳回 None 而不是比修改後的清單本身。這項設計決策植根於 Python 的總體原則,即就地修改物件的函數應傳回 None

基本原理

根據 Python 架構師 Guido van Rossum 的說法,此選擇旨在強調沒有創建新物件。透過不返回修改後的列表,它會阻止使用鍊式副作用,例如:

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

,這可能會造成混亂並妨礙可讀性。相反,Python 更喜歡更明確的形式:

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

這種分離清楚地表明每個方法都作用於同一個物件。

連結操作

同時連結側-effect 呼叫不鼓勵,Python 允許它用於傳回新值的操作,例如字串處理操作:

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

注意事項

此設計決策有缺點。它阻止了列表處理的直觀“連結”,例如:

mylist.reverse().append('a string')[:someLimit]

列表理解和其他資料結構等替代方案可以提供類似的功能,而不會破壞“無副作用返回”約定。

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

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