本文介绍了在python中,函数返回的是浅拷贝还是深拷贝?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在python中,如果我有

In python, if I have

x = y

对x的任何修改也会修改y,我可以做到

any modification to x will also modify y, and I can do

x = deepcopy(y)

如果我想避免在处理x时修改y

if I want to avoid modifying y while working on x

说,我有:

myFunc():
    return y

def main():
    x = myFunc()

修改x仍然会修改y,还是因为它是另一个函数的返回,所以它会像Deepcopy一样?

Is it still the case that modifying x will modify y, or since it is a return from another function it will be like a deepcopy?

推荐答案

这将是一个浅表副本,因为未明确复制任何内容.

It will be a shallow copy, as nothing has been explicitly copied.

def foo(list):
    list[1] = 5
    return list

例如:

>>> listOne = [1, 2]
>>> listTwo = [3, 4]
>>> listTwo = listOne
>>> foo(listTwo)
[1, 5]
>>> listOne
[1, 5]

这篇关于在python中,函数返回的是浅拷贝还是深拷贝?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-17 07:41