首页 > 解决方案 > python 函数的模板,它创建了输入的修改版本,但不修改输入

问题描述

我的大部分编程经验都是用 R 语言编写的,现在我正在做一个 python 项目。我想创建一个像 R 函数一样工作的函数,因为它接受一个对象并返回一个类似的对象,但以某种方式发生了变化,并且初始对象保持在调用命名空间中不变。我这样做的“模板”是......

from copy import deepcopy
def cut_in_half(l):
    l_new = deepcopy(l)
    l_new = l_new[range(ceil(len(l_new)/2))]
    return l_new

这是一个玩具示例,但主要思想是我首先制作一个深拷贝,然后修改它,然后返回它。这感觉有点笨拙,我不禁想知道我是否做错了什么。我是吗?

标签: pythonpass-by-referencedeep-copypass-by-value

解决方案


推荐阅读