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

为什么 Python 列表突变方法返回'None”?

Mary-Kate Olsen
发布: 2024-12-28 12:49:12
原创
726 人浏览过

Why Do Python List Mutation Methods Return `None`?

为什么列表突变在 Python 中返回 None

当使用诸如追加、排序、扩展、删除、清除和反转等方法操作 Python 列表时,会遇到一种奇怪的行为:这些操作就地修改列表并返回 None 而不是更新后的列表。

这种设计选择是由 Python 中的一个基本原则驱动的:函数就地改变对象应该返回 None。这强调了这样一个事实:在此类操作期间不会创建新对象。

Python 的创建者 Guido van Rossum 在 Python-Dev 邮件列表上详细解释了他的基本原理。他反对以简洁的方式将副作用链接到单个对象上,因为它可能会模糊读者对代码意图的理解。例如,考虑以下代码:

x.compress().chop(y).sort(z)
登录后复制

这相当于:

x.compress()
x.chop(y)
x.sort(z)
登录后复制

Van Rossum 认为第二种形式更清晰,因为它明确地表明每个操作都被应用到同一个变量 x.

另一方面,链接的使用保留用于返回新值的操作,例如字符串处理操作:

y = x.rstrip("\n").split(":").lower()
登录后复制

尽管某些库模块(如 pstat)可能会鼓励副作用调用的链接,但 Van Rossum 断言,对于标准库的新添加,不鼓励这种做法。

以上是为什么 Python 列表突变方法返回'None”?的详细内容。更多信息请关注PHP中文网其他相关文章!

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