首页 > 解决方案 > Python通过赋值传递但不保留值

问题描述

我在大型代码库中遇到了这个问题,所以我在下面创建了一个小型复制器:

在这里,我有以下两个函数,func2() 和 func3()

def func2(a,b):
     a = 'new-value'
     b = b+1
     return a, b

def func4():
     x,y = 'old-value',3
     func2(x,y)
     print(x,y)

我得到的输出是:

>>> func4()
old-value 3

我认为Python是传递赋值,所以func4()应该覆盖xynew-value4

我有什么误解?另外,我怎样才能将上面的代码更改为 make xyhavenew-value4

任何帮助是极大的赞赏!。

标签: pythonpython-3.xfunctionpass-by-referencepass-by-reference-value

解决方案


推荐阅读