Python这种修改了传入对象的函数, 是否应该用deepcopy, 另外返回一个列表?,pythondeepcopy,2017/2/4描述目的
Python这种修改了传入对象的函数, 是否应该用deepcopy, 另外返回一个列表?,pythondeepcopy,2017/2/4描述目的
2017/2/4
描述
目的是什么
函数是否应该有副作用 ?
是否应该具体情况具体分析
还是总是使用deepcopy, 另外返回 ?
相关代码
gist 上的代码片段: https://gist.github.com/hezhi...
上下文环境
产品版本: Python >= 2.7
操作系统: Linux
尝试解决
思考: 之前有看过说, 应该总是返回 deepcopy 之后的可变对象, 不修改原来传入的东西
对于可变的数据类型,[list|dict|set]传参的话,函数中如果要改变它们的值,最好采用deepcopy。
函数副作用会给程序设计带来不必要的麻烦,给程序带来十分难以查找的错误,并降低程序的可读性。
如果传入对象是可变的数据类型:
在没有使用deepcopy的程序中,传入对象可能在函数执行之后被修改。函数执行之后如果还有其它地方欲使用该对象,可能造成难以查找的错误。
就个人来说,实践中偏向尽量避免传入可变数据类型,比如传入tuple而不是list,在无法避免的情况下,使用deepcopy。
编橙之家文章,
相关内容
- Python web开发难不难需要了解哪些知道点,python难不难
- Python .pyc文件如何从源码文件夹中剥离出来,,比如,我
- Python求两个数之间所有的素数求思路,python素数,题目要
- Python XML禁止转义设置方式是怎样的,python转义,使用P
- Python数据分析暂存大数据存放问题,python数据分析,表中
- Python中文编码,只针对url内部中文编码处理问题,,已经
- scrapy python xpath相关问题,scrapyxpath,Response.bod
- 求Python剥离Django中db, orm模块的方法,djangoorm,SQLAlchemy太
- python捉虫想得到onclick的链接要怎么写?,python捉虫,&
- Python项目可持续集成环境哪个好,python项目可持续,以前
评论关闭