下面看一道题目:

a = 3

b = a

a = 5

print(a,b)

程序最后输出的a,b值分别是多少呢?

先想一想,然后我们执行一下看看正确答案:

正确答案 a 的值是5, b的值是3,为什么b的值没有随a的值的变化而变化?下面分析一下原因:

这里先介绍一个函数id(), 它可以查看变量的内存地址;好了,下面开始分析:

将程序拆分一下,先将3赋给a, 然后查看一下内存地址

再将a赋给b,然后查看b的内存地址

可以看出,b和a的内存地址是一样的

再将5赋给a, 查看a的内存地址

可以看到a的内存地址发生了变化,a指向了一个新的内存地址。

整个过程如下图所示:

最新文章

  1. hadoop2的automatic HA+Federation+Yarn配置的教程
  2. 微软职位内部推荐-Sr Development Lead-OSG-IPX
  3. maven 解决 Eclipse is running in a JRE, but a JDK is
  4. Java——String.split()函数
  5. HttpModule,HttpHandler,HttpHandlerFactory
  6. TCP Socket的通讯框架
  7. BZOJ 1050 [HAOI2006]旅行comf
  8. 原生JavaScript之“淘宝轮播图”
  9. 如何快速把 Vue 项目升级到 webpack3
  10. Go Lang
  11. mysql 开发基础系列10 存储引擎 InnoDB 介绍
  12. ubuntu下chrome浏览器安装flash插件(pepperflashplugin-nonfree)
  13. JavaScript非数字(中文)排序
  14. jenkins编辑报错Exception when publishing, exception message的解决办法
  15. Blender 作的鸭脖
  16. ubuntu安装python-ldap模块
  17. VS2015 调试 条件和操作设置
  18. Python设计模式(六大)
  19. POJ 3080 Blue Jeans 找最长公共子串(暴力模拟+KMP匹配)
  20. Python图形界面Tk

热门文章

  1. android sdk manager 闪退 打不开问题
  2. 通过源码学Java基础:InputStream、OutputStream、FileInputStream和FileOutputStream
  3. thymeleaf中的th:assert用法
  4. 怎样提交FIREDAC数据集的DELTA到中间件然后保存进数据库
  5. [iOS UI进阶 - 3.0] 触摸事件的基本处理
  6. HTTP常见错误 400/401/403/404/500及更多
  7. MSSQL导入数据时,出现“无法截断表 因为表正由Foreign key引用”错误
  8. -webkit-appearance: none;去处select默认小箭头样式
  9. PHP实现基于Swoole简单的HTTP服务器
  10. 测试URL有效性