函数参数传递机制,传值和引用的是什么意思?

函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。

值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间来存放由主调函数放进来的实参的值,从而想成为了实参的一个副本。值传递的特点是被调函数对形势参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。

引用传递(pass-by-reference)过程中,被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做任何的操作都影响了主调函数中的实参变量。

在python中,可以有多个引用同时指向一个内存。

python不允许程序员选择采用传值还是传引用。python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(字典、列表)的引用,就能修改对象的原始值--相当于‘传引用’来传递对象。如果函数收到的是一个不可变对象(数字、字符或元组)的引用,就不能直接修改原始对象--相当于通过‘值传递’来传递对象。

最新文章

  1. Spring远程调用技术<2>-Hessian和Burlap
  2. css3简单的图片轮播
  3. 多线程中的synchronized
  4. ConcurrentHashMap Put()操作示例代码
  5. java环境配置总结
  6. python读取数据库数据有乱码怎么解决?
  7. 如何在WCF中集成unity
  8. The executable was signed with invalid entitlements.
  9. SEO 优化,网站推广优化教程100条(SEO,网站关键字优化,怎么优化网站,如何优化网站关键字)
  10. IPFS如何挖矿<Filecoin系统>?(一)
  11. React Native笔记
  12. Yarn的Linking dependencies特别慢的优化方法
  13. centos7防火墙管理的变化
  14. gcc,g++
  15. scanf()函数分析
  16. 【数据库】软件安全测试之SQL注入
  17. [linux] shell脚本编程-xunsearch安装脚本学习
  18. Linux入门-4 Linux下获取帮助
  19. [SHELL]查看端口,文件,服务关系的四个命令netstat,lsof,fuser,nmap
  20. [Todo] Redis相关学习

热门文章

  1. Python语法之选择和循环(if、while)
  2. proto buffer
  3. AtomicStampedReference AtomicReference解决CAS机制中ABA问题
  4. Mybatis(四)——
  5. Linux制作Raid
  6. 20210501 序列,熟练剖分(tree),建造游乐园(play)
  7. [考试总结]noip模拟46
  8. markdown的骚气操作(一)
  9. charles 抓包修改app页面数据
  10. 云真机兼容性自动化工具测试解决方案_www.alltesting.cn