python语言的参数传递皆为引用传递(C语言中的概念)
但由于python中有可变类型和不可变类型的概念,但传递的参数是不可变类型时,值变内存地址就变了,在函数里对参数的修改不会影响到原对象。当传递的参数是可变类型时,由于可变类型的内存地址不会发生变化,会影响到原对象。
C语言中的 值传递和引用传递,传递的都是变量的副本,不同的是,值传递的是值的拷贝,引用传递是地址的拷贝。一般来说,地址拷贝的效率更高(地址数据量小),值传递的拷贝效率取决于值的大小,值越大效率越低
python语言的参数传递皆为引用传递(C语言中的概念)
但由于python中有可变类型和不可变类型的概念,但传递的参数是不可变类型时,值变内存地址就变了,在函数里对参数的修改不会影响到原对象。当传递的参数是可变类型时,由于可变类型的内存地址不会发生变化,会影响到原对象。
C语言中的 值传递和引用传递,传递的都是变量的副本,不同的是,值传递的是值的拷贝,引用传递是地址的拷贝。一般来说,地址拷贝的效率更高(地址数据量小),值传递的拷贝效率取决于值的大小,值越大效率越低