摘要:s1、s2存的内容相同都是 "oeasy"id 居然 也相同 ?!!!
变量在内存内的什么位置_物理地址_id_内存地址_物理地址 回忆上次内容
声明、赋值之前不能使用变量声明、赋值了之后才能使用变量
顺序 必须 清清楚楚那 声明的 这俩变量具体存在哪儿呢?问问ai
收获 新函数 id id
id 就是identity唯一的身份标识号身份证号
id函数怎么用呢? id q #退出 pdb环境从pdb退回到vim进入游乐场s1 = "oeasy" id(s1)
结果s1的id是一长串数字数值 和 截图不一样 很正常只要是 一串数字 就对了
这串数字 什么含义? 问问ai
这串数字 是内存地址的 整数值什么是内存? 内存内存随机存储器Random Access MemoryRAM
py程序 运行在 内存中其中变量 也存储在 内存中每次运行的状态不同分配的位置也不同
内存里面有很多字节就像 楼房里面的小房间内存地址
变量就存储在小房间中内存地址 就是 小房间的门牌号码
回游乐场 去问问 python本人id函数 是什么意思?id返回 的是对象 的 唯一标记the identity of an object
对于不断变化 的 对象每个 对象 都有唯一标记idnetity两个变量id会相同吗?测试
退回游乐场 s1 = "oeasy" s2 = "o2z" print(id(s1)) print(id(s2))两个变量s1、s2确实id不同
如果 两个变量s1、s2存的都是 "oeasy" 呢?相同对象 s1 = "oeasy" s2 = "oeasy" print(id(s1)) print(id(s2)) print(id(s1) == id(s2) )
结果
s1、s2存的内容相同都是 "oeasy"id 居然 也相同 ?!!!id 不是 变量唯一身份证 吗?两个 不同的变量 id相同怎么理解?再查询手册
对象的id唯一标识地址确实 是要确保 唯一unique
simultaneously[ˌsɪməlˈteɪniəsli]同时地同时存在的各个对象都得确保有唯一的标识到底什么是唯一的? 多次引用存'oeasy' 的这块内存地址是唯一的这块地址被 两个变量 所引用s1s2两个变量都引用 这个房间号
但是 如果又 给s1 再赋个新值那么 s1会 引用 新的地址 吗? 实践 s1 = "oeasy" s2 = "oeasy" print(id(s1)) print(id(s2)) print(id(s1) == id(s2) ) s2 = "o2z" print(id(s1)) print(id(s2)) print(id(s1) == id(s2) )s2 最初 引用的是存"oeasy"的地址
现在 s2 要存"o2z"得换 新地址
如果s1所存储的字符串也变了呢?也变了 s1 = "oeasy" s2 = "oeasy" print(id(s1)) print(id(s2)) print(id(s1) == id(s2) ) s1 = "ooo" s2 = "o2z" print(id(s1)) print(id(s2)) print(id(s1) == id(s2) )
原来存"oeasy" 那片地址怎么办呢?自动垃圾回收
系统 发现这块 存着 "oeasy"字符串 的地址、没有对象 再引用就垃圾回收了
其他语言一般还需要 手动垃圾回收python 直接就给 自动回收了总结
这次我们 了解了 id 函数id函数 可以得到变量对象 所引用的 唯一内存地址s1 = "oeasy" A = 10
现在都是用 字面量(literal)给变量 赋值
可以用 变量给变量 赋值 吗?我们下次再说!蓝桥->https://www.lanqiao.cn/courses/3584github->https://github.com/overmind1980/oeasy-python-tutorialgitee->https://gitee.com/overmind1980/oeasypython 来源:oeasy
免责声明:本站系转载,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!