关于python中可变类型做函数参数的一些疑问。。。
今天下午在做笔记,然后遇到个问题,想来请教下各位神仙
python中可变类型做形参,传递的是引用;而不可变类型做形参,传递的是实际的值
之前我一直理解为不可变类型作为形参类似于c++中的值传递,而可变类型做形参相当于是c++中的引用传递
然后我就写了下面的代码:
输出结果为:
[10]
[10, 20, 30]
实际调试的时候我发现函数中的mylist并没有进行更新,函数体中又创建了一个新的变量名mylist,使用id()查看,发现和之前的是不同的
然后我就去试了一下c++的引用传递,查看内存地址,发现是同一个的
我知道python中变量名相当于是对象的一个引用,那作为形参时,它如果传递引用的话,为啥它重新创建了一个对象呢?
这里想问一下,
是不是可变类型作为函数的形参,传递的是具体的对象?
还是说python中函数的形参是不能做左值被赋值的?
辛苦各位神仙解释下。。