为什么 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中文网其他相关文章!