python 内存系列(1)-简单图解 python中内存和变量示例

时间:2021-7-3 作者:qvyue

前言

因之前有初学编程的人问我,关于python内存地址和变量一些疑问说他们之前到底怎么变化,对应的关系是怎么样?解说一番后,他更茫然了!无奈!于是乎还是尝试用这种方式做一个简单笔记记录。

1 python中内存和变量图解示例

无理论直接干代码:

import sys
print("=========================================")
print("开始创建一个变量,开闭一个新的内存空间A1")
a1 = '小钟同学'
print('a1在内存中的【初始】16进制地址为:', hex(id(a1)))
print(sys.getrefcount(a1))
a1 = '小钟同学睡觉了'
print("修改A1的值,---开闭一个新A1的内存地址空间分配")
print('a1在内存中的【最新】16进制地址为:', hex(id(a1)))
print(sys.getrefcount(a1))
print("=========================================")
print("a1的地址和值=a2的地址和值")
a2 = a1
print("a1的值为:", a1, "|", "a1在内存中的【最新】16进制地址为:", hex(id(a1)))
print(a2, hex(id(a2)))
print("a2的值为:", a2, "|", "a2在内存中的【最新】16进制地址为:", hex(id(a2)))
print("=========================================")

print("重新把之前的值给a1,它的地址是否会变呐?")
a1 = "小钟同学睡觉了"
print("a1的值为:", a1, "|", "a1在内存中的【最新】16进制地址为:", hex(id(a1)))
print(a2, hex(id(a2)))
print("a2的值为:", a2, "|", "a2在内存中的【最新】16进制地址为:", hex(id(a2)))
print("=========================================")
print("修改a2的值,观察a1和a2的地址的地址")
a2 = "小钟同学该上班了!"
print("a1的值为:", a1, "|", "a1在内存中的【最新】16进制地址为:", hex(id(a1)))
print(a2, hex(id(a2)))
print("a2的值为:", a2, "|", "a2在内存中的【最新】16进制地址为:", hex(id(a2)))

输出结果:

=========================================
开始创建一个变量,开闭一个新的内存空间A1
a1在内存中的【初始】16进制地址为: 0x19cc110
4
修改A1的值,---开闭一个新A1的内存地址空间分配
a1在内存中的【最新】16进制地址为: 0xe6df38
4
=========================================
a1的地址和值=a2的地址和值
a1的值为: 小钟同学睡觉了 | a1在内存中的【最新】16进制地址为: 0xe6df38
小钟同学睡觉了 0xe6df38
a2的值为: 小钟同学睡觉了 | a2在内存中的【最新】16进制地址为: 0xe6df38
=========================================
重新把之前的值给a1,它的地址是否会变呐?
a1的值为: 小钟同学睡觉了 | a1在内存中的【最新】16进制地址为: 0xe6df38
小钟同学睡觉了 0xe6df38
a2的值为: 小钟同学睡觉了 | a2在内存中的【最新】16进制地址为: 0xe6df38
=========================================
修改a2的值,观察a1和a2的地址的地址
a1的值为: 小钟同学睡觉了 | a1在内存中的【最新】16进制地址为: 0xe6df38
小钟同学该上班了! 0x19e40c8
a2的值为: 小钟同学该上班了! | a2在内存中的【最新】16进制地址为: 0x19e40c8

图解

python 内存系列(1)-简单图解 python中内存和变量示例
image.png

说明

部分的图或资料来互联网收集整理,如有侵权,烦请联系,我会立即进行删除。

End

纯属个人实践中相关经验之谈,如有纰漏,还希望大佬们多多提点!
小钟同学 | 文 【原创】|

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。