在python中,还没有对这个知识点有一个详细的定义,很模糊的说明了,通过下面代码,可以观察出来,什么时候传的是值,什么时候传的是地址

有时候会发现自己的数据发生变化,可能就是这个原因,python的创作者,在定义的时候,并没有像java/c++深挖,比较模糊的说明了,这样一个关于值和地址的问题,也有我的知识不够宽广,没有涉及到这方面知识,如有偏差,敬请指正!

# 传值和传地址的区别
# 对于简单的数值,采用传值操作,即在函数内对参数的操作不影响外面的变量
# 对于复杂变量,采用传地址操作,此时函数内的参数和外部变量是同一份内容,
# 任何地方对此内容的更改都影响另外的变量或参数的使用 def a(n):
n[2] = 300
print(n)
return None def b(n):
n += 100
print(n)
return None an = [1,5,6,5,7,9]
bn = 5 print(an)
a(an)
print(an) print(bn)
b(bn)
print(bn)

结果:

[1, 5, 6, 5, 7, 9]
[1, 5, 300, 5, 7, 9]
[1, 5, 300, 5, 7, 9]
5
105
5 通过结果观察:
对于简单的数值,采用的是传值操作,即在函数内对参数的操作不影响外面的变量
对于复杂的变量,采用传地址操作,此时函数内的参数和外部变量是同一份内容,任何地方对此内容的更改都会影响另外的变量或参数的使用
小伙伴们,注意啦!

最新文章

  1. html5 canvas-变幻函数
  2. iOS启动页设置
  3. Webpack 之 Loader 的使用
  4. [转]日期格式化(yyyy-MM-dd)中,为什么 M 多大写?
  5. poj 2723
  6. ThinkPHP中URL解析原理,以及URL路由使用教程!
  7. C#微信登录-电脑版扫描二维码登录
  8. VirtualBox安装Ghost XP
  9. CF 148D. Bag of mice (可能性DP)
  10. 机器学习:保序回归(IsotonicRegression):一种可以使资源利用率最大化的算法
  11. IDEA Maven 三层架构 1、基本的Archetype 搭建
  12. ES6对象及ES6对象简单拓展
  13. JavaScript控制输入框中只能输入中文、数字和英文
  14. Ext.override
  15. Linux中DHCP服务器的简单配置
  16. bzoj4514 数字配对
  17. Python 入门知识捡漏
  18. 【Todo】React & Nodejs学习 &事件驱动,非阻塞IO & JS知识栈:Node为主,JQuery为辅,Bootstrap & React为辅辅,其他如Angular了解用途即可
  19. CodeIgniter(3.1.4)框架使用静态文件(js,css)
  20. linux的mount命令详解

热门文章

  1. Java中的代理机制
  2. Scala微服务架构 一
  3. PHP校验日期格式是否合法
  4. Mobility Model and Routing Model about the ONE
  5. Maven Optional & Exclusions 使用区别
  6. JavaScript防篡改对象
  7. CentOS 部署 NodeBB
  8. jdk8- list操作
  9. SQL 必知必会·笔记<7>汇总数据——使用聚合函数
  10. git在工作中的用法总结-环境安装篇