栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使就地操作返回对象不是一个好主意吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使就地操作返回对象不是一个好主意吗?

是的,这是一个坏主意。原因是,如果就地操作和非就地操作具有明显相同的输出,那么程序员将经常混淆就地操作和非就地操作(

List.sort()
vs.
sorted()
),从而导致难以检测错误。

返回自身的就地操作可以允许您执行“方法链接”,但是,这是不好的做法,因为您可能会将带有副作用的函数偶然地埋在链的中间。

为防止此类错误,方法链应只具有一种具有副作用的方法,并且该功能应位于链的末尾。链中位于此之前的函数应该转换输入而没有副作用(例如,导航树,切片字符串等)。如果就地操作返回了自己,那么程序员必然会意外地使用它来代替替代函数,该替代函数返回一个副本,因此没有副作用(再次是

List.sort()
vs
sorted()
),这可能会导致难以调试的错误。

这就是Python标准库函数总是返回副本或

None
就地返回并修改对象,而从不就地修改对象并返回自身的原因。其他Python库(例如Django)也遵循这种做法(请参见有关Django的非常相似的问题)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645757.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号