文章已更新,最新地址:https://www.fearlazy.com/index.php/post/142.html
c++函数传参有三种方式:分别是按值、按引用和按指针传递。简单的说按值传递的方式不会改变传递的参数本身,按引用传递的方式会改变参数本身(当然可以用const限制),按指针传递方式会改变指针指向的对象。那么python有没有这样的特性呢?以下做一些测试:
1.传递数字类型的变量(python里可能应该叫对象):
从测试代码中可以看到a并没有发生改变,函数中的parm(形参)值发生了改变。也就是说调用函数时参数a只是把值赋给了parm。
2.传递列表类型的变量:
从测试代码中可以看出经过函数调用后,a的值发生了改变。改变后的a和函数里的parm是一样的。可以理解为变量a把自己赋给了parm。
3.传递字符串类型的变量:
和数字类型一样,传递字符串类型的参数也是按值传递。
4.传递字典类型的变量:
和列表类型一样,传递字典类型的参数是按引用方式传递。
5.传递元组类型的变量:
在函数中试图改变传进来的元组的值,程序崩溃了。 忘了元组是不能改变它的值的....
总结:python中变量可以分为可变类型(如列表、字典)和不可变类型(如数字和字符串)。可变类型的变量可以看成是按引用传递,不可变类型的变量可以看成是按值传递。