学习《算法》小结

一个简单的小问题?

1、java中方法的参数是按值传递,而python的函数参数是按对象或对象的引用传递?那其他语言呢?按值进行传递,按引用进行传递,按对象进行传递有什么区别?
java中方法处理的是参数的值,而非参数本身。这种方式产生的结果是在静态方法中改变一个参数变量的值对调用者没有影响。值传递也意味着数组参数将会是原数组的别名——方法中使用的参数变量能够引用调用者的数组并改变其内容(只是不能改变原数组变量本身)。例如,Arrays.sort()将能够改变通过参数传递的数组的内容,将其排序。
python函数参数既不是传参也不是传引用,是传对象或传对象的引用。函数参数在传递的过程中将整个对象传入,对可变对象的修改在函数外部以及内部都可见,调用者和被调用者共享这个对象,对不可变对象,由于并不能真正被修改,因此,修改往往是通过生成一个新对象然后赋值来实现的。

猜你喜欢

转载自blog.csdn.net/u013488563/article/details/81148514