同样的数字,取id地址,每次运行都会发生变化,是正常的现象吗?
print(id(1))#2703299668272
print(id(1))#2430196541744
我看的视频上面,运行代码的时候,id地址不会变化
每次运行时2个print打印的地址是一样的,重新运行后地址会变,但是打印出的内容一样。
题主运行后直接打印出2个不同的地址?
id函数:返回元组对象的唯一 id
Python 中的所有对象都有其自己的唯一 id。
id 在创建时已分配给对象。
id 是对象的内存地址,并且在每次运行程序时都不同。
你每次程序运行创建对象都是重新分配地址啊,当然不同喽
你每次程序运行创建对象都是重新分配地址
所以,是的
你这个应该是在不同的python进程中的执行的结果。
如果在同一个结果中你多次去取同一个常量的id肯定是一样的。
另外Python中有一个小整数池的用来存储[-5,256]之间的数据,小整数池的变量的地址Python进程启动时就分配好了,整个运行过程中都不会改变。
从下面的结果可以看到,不同的变量取值在小整数池中时,地址都一样。
但是变量取值不在小整数池时就不同了。但是常量的地址多次打印还是不会改变的。
>>> x=1
>>> y=1
>>> print(id(x))
140093191128992
>>> print(id(y))
140093191128992
>>> print(id(1))
140093191128992
>>> x=256
>>> y=256
>>> print(id(x))
140093191137152
>>> print(id(y))
140093191137152
>>> print(id(256))
140093191137152
>>> x=257
>>> y=257
>>> print(id(x))
140093191807856
>>> print(id(y))
140093191808048
>>> print(id(257))
140093191809776
>>> print(id(257))
140093191809776
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!