在python的函数中,传参不需要指定是否传引用,因为python的参数传递 是采用“传对象引用”这种方式相当于传值和传引用的结合版。
如果函数收到是一个可变对象的引用(例如:字典, 列表等等),就能修改对象的原始值 相当于“传引用”
如果函数收到的一个是不可变对象的引用(例如:数字,字符,,元祖等等),就不能直接修改原始对象的值 相当于“传值”
python一般内部赋值变量的话,都是传个引用变量,和C语言的传地址的概念差不多。可以用id()来查询内存地址
值传递类型如下:
a= 1 def change_integer(a): a=a+1 return a print change_integer(a) print a
上面的代码只是将a的值作为参数传递进去,程序执行完之后a的值并未改变
引用传递的类型如下:
b= [1, 2, 3] def change_list(b): b[0]= b[0]+1 return b print change_list(b) print b
而这里将b的地址传递进去之后,程序执行完之后b的值也随之改变。