详解python函数传参传递dict/list/set等类型的问题
传参时传递可变对象,实际上传的是指向内存地址的指针/引用这个标题是我的结论,也是我在做项目过程查到的。学过C的都知道,函数传参可以传值,也可以传指针。指针的好处此处不再赘述。先上代码看看效果:运行结果:。可以看到改变了source时,dist也跟着改变了。原因就是source是可变对象,传递参数时,传的是其引用。dist和source都指向了同一片内存空间。在运行source[2] = 2时,是对内存空间的数据的变更,所以dist也跟着变化。场景应该很多,不过本人资历尚浅,想不到典型场景,就拿自己的项目举例。上述的Config类,如果实例化时传递{},就不能共享配置。
用户评论