首页 > 后端开发 > Python教程 > 为什么Python的列表修改方法返回'None”?

为什么Python的列表修改方法返回'None”?

Susan Sarandon
发布: 2024-12-20 18:29:13
原创
834 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板