通过引用传递可变对象?

时间:2018-05-23 17:41:49

标签: python pandas dataframe

我初始化变量aba的ID = 559599568,b的ID = 559251864。

然后我在b函数中将a分配给change(),期望a指向b的位置和{{1} } a的价值。

但是,我发现b确实指向a在函数中的位置(如您所见,在函数更改内部打印时,它们都具有id = 559251864) ,但是一旦函数返回,b指向它的原始id,即559599568。

为什么a一旦返回指向其原始内存ID?我认为python是通过引用传递的,如果它是一个可变对象?请纠正我。

a

1 个答案:

答案 0 :(得分:1)

是的,Python正在传递对象的引用(call by sharing)。但您的作业origin = new指定引用。因此,这使originnew引用函数范围内的同一个对象,但不会更改函数外的任何内容。