python中的=号赋值,实际上这种是一种共享内存的引用赋值。可以这么说,python中根本没有其他语言的赋值这回事,全部都是引用操作。
# python中的变量在第一次出现时,直接赋值,这个过程就是创建一个内存空间,并把数据保存进去。 num = 3 # 但是,如果该变量赋值过程中,=号右边的不是一个新数据,而是已经在内存中出现过的数据/变量,则这个过程是不会占用新的内存空间的。 num1 = num print(num, id(num)) #3 4561938800 print(num1, id(num)) #3 4561938800 # 这里重新修改了变量的指向,这里为什么num不跟着一起变化呢?原因是因为小数据池的机制导致的。4已经在内存中了。 # 因此形成的效果在于如果变量的值是一个数值、字符串类型,那么变量改值就会发生变量指向到其他的内存空间,但是不影响引用的变量。 num1 = 4 print(num1) # 4 print(num) # 3
# 但是,针对于一些复杂的数据结构:字典,列表,集合,这几种就有区分了。以以下列表为例: # data1 = [1,2,3] # data2 = data1 # data2.append(4) # print(id(data2), data2) # 2722959468672 [1, 2, 3, 4] # print(id(data1), data1) # 2722959468672 [1, 2, 3, 4]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)