博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 赋值的一般含义是引用
阅读量:7125 次
发布时间:2019-06-28

本文共 685 字,大约阅读时间需要 2 分钟。

在困惑的查找答案过程中发现了id()

id() 表示的是对应的内存地址

案例1:

>>> a=1>>> b=2>>> id(1)39355320>>> id(a)39355320>>> id(b)39355308>>> b=3>>> id(b)39355296>>>

请输入id(2)和id(3),比较输出的结果

比较发现:

a=1 id(a)和id(1)是同一个
同理id(b)和id(2)是一样的
b=3 此处赋值改变了id(b)的值,不再指向 2 而是指向 3
a或者b,在Python中都只是一个名字,来指向一个值 比如1 2(不论字符类型)

>>> a=1>>> b=2>>> list1=[a,b]>>> print list1[1, 2]>>> b=3>>> print list1[1, 2]>>>

此处代码中 b=2 指向39355308 打印出来是2 所以print list[1]或者print b

以及print 2 效果是等同的
但是print list1[1]是直接指向2的这个值 39355308
print b 是间接指向2的这个值 39355308
b是一个名字 引用这个值
所以当重新赋值 b=3
print b b作为一个名字 引用的是3的值 b指向一个新的值——3的值
print list1[1]得到的依旧是 39355308

而print list1 是print list1[0] 和print list1[1] 的合集

所以输出结果依旧是[1,2] 而不是 [1,3]

重新定义 list1=[a,b] 才会输出[1,3]

转载地址:http://uaeel.baihongyu.com/

你可能感兴趣的文章
Java IO类库之ByteArrayOutputStream
查看>>
《Spring5学习》04 - 面向切面编程
查看>>
druid简单教程
查看>>
推荐一款免费好用的网页视频播放器
查看>>
Android 保活
查看>>
小程序环境搭建与开发工具的简单介绍
查看>>
我的友情链接
查看>>
red hat5安装mysql5.5.25
查看>>
深入理解C++的动态绑定和静态绑定
查看>>
cisco 7200 simulator
查看>>
JAVA WEB搭建 SpringMVC+Spring+hibernate 框架
查看>>
HibernateTemplate中常用的方法
查看>>
clang: error: unknown argument: 'websockets'解决方法
查看>>
Vue.js 特有的一种ajax——axios
查看>>
我的友情链接
查看>>
dos2unix命令 - 将DOS格式文本文件转换成UNIX格式
查看>>
[置顶] 全屏打开网页
查看>>
windows下利用cwRsync批量更新
查看>>
github工作流程之三---发起一个pull 请求
查看>>
灰度发布
查看>>