為什麼Python 的Mutating List 方法不回傳None
Python 中修改清單的操作,例如刪除、清除、擴充、擴充、擴充、擴充、擴充,然後反向操作,令人驚訝的是返回None 而不是更新後的列表。這項設計決策引起了人們的好奇與爭論。
Python 的仁慈的終生獨裁者 (BDFL) Guido van Rossum 解釋說,這一原則源於編碼風格的考慮。有些語言喜歡在單一物件上連結多個副作用,例如 x.compress().chop(y).sort(z)。
Van Rossum 認為這種連結可能會妨礙不熟悉這些方法的讀者的可讀性涉及。他喜歡更明確的風格,將副作用分開並直接應用於物件:
x.compress() x.chop(y) x.sort(z)
這種方法可以清楚地表明哪個物件正在被修改,促進理解。
Van Rossum 保留返回新值的操作的鏈接,例如結果是轉換後的字符串的字符串處理操作,如下所示:
y = x.rstrip("\n").split(":").lower()
此設計決策是有意實現的阻止副作用調用的鏈接,並強調就地修改和返回新對象的操作之間的區別。雖然這有時看起來不方便,但它提高了 Python 編碼風格的清晰度和一致性。
以上是為什麼 Python 的列表變異方法回傳「None」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!