Python中的id()函数
1. 介绍
id()
函数是Python内置的一个函数,用于获取对象的唯一标识。每个对象在Python中都有一个唯一的标识符,通过id()
函数可以获取这个标识符。
2. 语法
id(object)
object
:要获取标识符的对象。
3. 返回值
id()
函数返回对象的标识符(整数)。
4. 示例代码
# 示例代码1
num1 = 10
num2 = 10
print(id(num1)) # 输出结果:140726524357008
print(id(num2)) # 输出结果:140726524357008
# 示例代码2
list1 = [1, 2, 3]
list2 = [1, 2, 3]
print(id(list1)) # 输出结果:2509593866880
print(id(list2)) # 输出结果:2509593867392
# 示例代码3
str1 = "Hello"
str2 = "Hello"
print(id(str1)) # 输出结果:2509593799248
print(id(str2)) # 输出结果:2509593799248
5. 解析
5.1 整数对象的标识符
在示例代码1中,我们定义了两个变量num1
和num2
,它们的值都是整数10
。通过id()
函数获取它们的标识符后,发现它们的标识符相同。这是因为在Python中,对于整数对象,在一定范围内(通常是-5到256),同一个数值的整数对象是共用内存地址的。这种共用内存地址的机制称为整数对象的缓存机制,目的是为了提升性能。
5.2 列表对象的标识符
在示例代码2中,我们定义了两个列表list1
和list2
,它们的值相同,但是通过id()
函数获取它们的标识符后,发现它们的标识符不同。这是因为列表对象是可变对象,当我们创建一个列表对象时,每次都会在内存中分配一块新的空间,用于存储列表的元素。因此即使两个列表的元素相同,它们在内存中的存储空间也是不同的。
5.3 字符串对象的标识符
在示例代码3中,我们定义了两个字符串str1
和str2
,它们的值相同,通过id()
函数获取它们的标识符后,发现它们的标识符相同。这是因为字符串对象是不可变对象,当创建一个字符串对象时,如果已经存在相同内容的字符串对象,Python会重用这个已经存在的对象。
6. 总结
通过本文的介绍,我们了解了Python中的id()
函数的用途及语法,并通过示例代码详细解释了它的工作原理和返回值。id()
函数可以用于获取对象的唯一标识符,帮助我们判断两个对象是否是同一个对象。对于不可变对象,如果内容相同,则它们的标识符也相同;而对于可变对象,不论内容是否相同,它们的标识符都是不同的。