龙空技术网

变量的内存地址引用

厚积薄发爱python 40

前言:

而今你们对“python变量内存地址”可能比较看重,各位老铁们都需要分析一些“python变量内存地址”的相关资讯。那么小编同时在网络上网罗了一些有关“python变量内存地址””的相关知识,希望你们能喜欢,兄弟们快快来学习一下吧!

一、总结:

1.变量引用的是数据的内存地址。

2.可变数据类型列表和字典对应的变量在增加,删除元素时,变量指向的内存地址不会发生变化,如果重新赋值,则引用的内存地址会发生变化。

二、代码示例如下:

#变量引用数据的内存地址,数据保存在内存中a=1print("1的内存地址:",id(1))print("a的内存地址:",id(a))b=aprint("b的内存地址:",id(b))a=2print("a的内存地址:",id(a))print("b的内存地址:",id(b))print("分隔符:","***"*10)def test(num):    print("%d的内存地址是:%d"%(num,id(num)))a=12print("a的内存地址是:{}".format(id(a)))print(test(a))#以下是可变数据类型列表和字典变量的内存地址引用print("分隔符:","***"*10,"以下是列表的内存地址引用示例")aa=[1,3,4,5]print("aa的内存地址:",id(aa))aa.append(55)print("aa的内存地址:",id(aa))   #打印列表aa的内存地址,列表新增元素后,列表的内存地址不变aa.clear()  #清空列表aa的元素,相当于aa是一个空列表print("aa的内存地址:",id(aa))   #打印列表aa的内存地址,清空列表元素后,列表的内存地址不变aa=[]print("aa的内存地址:",id(aa))  #将空列表赋值给aa后,再打印aa的内存地址,与之前的内存地址已经不相同print("分隔符:","***"*10,"以下是字典的内存地址引用示例")a1={"name":"lisa","age":20}   #将字典赋值给a1,即a1引用字典的内存地址print("a1的内存地址:",id(a1))a1.pop("age")print(a1)print("a1的内存地址:",id(a1))   #删除字典中的元素后,变量a1引用的内存地址依然不变a1.clear()print(a1)print("a1的内存地址:",id(a1))   #删除字典中的所有元素后,变量a1引用的内存地址依然不变a1={}print("a1的内存地址:",id(a1))   #对元素a1重新赋值后,a1引用的内存地址发生变化

三、代码运行结果如下:

1的内存地址: 140735385801536

a的内存地址: 140735385801536

b的内存地址: 140735385801536

a的内存地址: 140735385801568

b的内存地址: 140735385801536

分隔符: ******************************

a的内存地址是:140735385801888

12的内存地址是:140735385801888

None

分隔符: ****************************** 以下是列表的内存地址引用示例

aa的内存地址: 2397261161032

aa的内存地址: 2397261161032

aa的内存地址: 2397261161032

aa的内存地址: 2397261161096

分隔符: ****************************** 以下是字典的内存地址引用示例

a1的内存地址: 2397261637456

{'name': 'lisa'}

a1的内存地址: 2397261637456

{}

a1的内存地址: 2397261637456

a1的内存地址: 2397261637600

四、图片示例如下:

标签: #python变量内存地址