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

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

Susan Sarandon
發布: 2024-12-27 21:35:10
原創
434 人瀏覽過

Why Do Python's List Modification Methods Return `None` Instead of the Modified List?

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

Python的列表修改方法,例如append、sort和extend,具有返回None而不是返回None的特殊行為修改後的列表本身。這個設計決策激發了程式設計師的好奇心。

例如,在 Java 中,list.sort() 傳回排序後的列表,讓開發人員方便地連結方法呼叫。但在 Python 中,這種連結是不可能的,這就提出了一個問題:為什麼 Python 的設計者會做出這樣的選擇?

設計原則:強調就地修改

Python 中的一項基本設計原則是就地改變物件的函數應該傳回 None。這巧妙地傳達了沒有傳回新物件。

Guido van Rossum 的觀點

Python 的創建者 Guido van Rossum 在 Python 上解釋了這一決定背後的基本原理-開發郵件列表。他建議返回 None 可以阻止多個副作用調用的連結所造成的「可讀性威脅」。

在下面的範例中,連結形式:

x.compress().chop(y).sort(z)
登入後複製

需要深入的知識鏈中的每個方法。第二種形式:

x.compress()
x.chop(y)
x.sort(z)
登入後複製

更明確,明確每個方法作用於同一個物件。這有助於保持程式碼的清晰度,特別是在使用不熟悉的類別或方法時。

規則的例外

雖然一般原則是就地修改回傳None,有例外:

  • 傳回新值的操作,例如字串處理操作,例如rstrip() 和split(),傳回修改或處理後的字串,允許連結。

但是,正如 van Rossum 指出的那樣,將連結限制為傳回新值的此類操作以避免混淆非常重要且可讀性問題。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板