Python id() 函数

2021/9/11 11:05:52

本文主要是介绍Python id() 函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

x=2
print(id(2))
print(id(x))
y='hello'
print(id('hello'))
print(id(y))

2022139072
2022139072
55049600
55049600


'''
在Python中一切皆对象,像2,'hello'这样的值都是对象,只不过5是一个整型对象,而'hello'是一个字符串对象。

上面的x=2,在Python中实际的处理过程是这样的:

先申请一段内存分配给一个整型对象来存储整型值2,然后让变量x去指向这个对象,实际上就是指向这段内存(这里有点和C语言中的指针类似)。

而id(2)和id(x)的结果一样,说明id函数在作用于变量时,其返回的是变量指向的对象的地址。因为变量也是对象,所以在这里可以将x看成是对象2的一个引用。

原文链接:https://blog.csdn.net/tycoon1988/article/details/38850443
'''

 

x=2
print(id(x))
y=2
print(id(y))
s='hello'
print(id(s))
t=s
print(id(t))

2022139072
2022139072
64788352
64788352

从运行结果可以看到id(x)和id(y)的结果是相同的,id(s)和id(t)的结果也是相同的。这说明x和y指向的是同一对象,而t和s也是指向的同一对象。x=2这句让变量x指向了int类型的对象2,而y=2这句执行时,并不重新为2分配空间,而是让y直接指向了已经存在的int类型的对象2.这个很好理解,因为本身只是想给y赋一个值2,而在内存中已经存在了这样一个int类型对象2,所以就直接让y指向了已经存在的对象。这样一来不仅能达到目的,还能节约内存空间。t=s这句变量互相赋值,也相当于是让t指向了已经存在的字符串类型的对象'hello'(这个原理和C语言中指针的互相赋值有点类似)。

看这幅图就理解了:

 

 




链接:https://blog.csdn.net/tycoon1988/article/details/38850443

 



这篇关于Python id() 函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程