函数更改作为参数给出的变量值

问题描述 投票:0回答:2

我有以下功能:

def myfunc(x):
    y = x
    y.append(' appendix') // change happens here
    return y

x = []
z = myfunc(x)
print(x) // change is reflected here, and appendix is printed

如何确保更改

x
不会反映在调用该函数的代码中?

python function parameters parameter-passing
2个回答
11
投票

你会:

y = x[:]

复制列表

x


1
投票

修改之前需要先复制X,

def myfunc(x):
 y = list(x)
 y.append('How do I stop Python from modifying x here?')
 return y

x = []
z = myfunc(x)
print(x)
© www.soinside.com 2019 - 2024. All rights reserved.