Python id() 函数

Python3 内置函数 Python3 内置函数


id() 是 Python 中用于获取对象唯一标识符的内置函数。

在 Python 中,每个对象都有一个唯一的整数标识符,这个标识符在对象的生命周期内是唯一的且恒定的。id() 返回这个标识符,通常对应对象的内存地址。

单词释义ididentifier(标识符)的缩写。


基本语法与参数

语法格式

id(object)

参数说明

  • 参数 object
    • 类型: 任意对象
    • 描述: 要获取标识符的对象。

函数说明

  • 返回值: 返回一个整数,表示对象的唯一标识符。
  • 特点: 在对象的生命周期内,id 是恒定不变的。

实例

示例 1:基础用法

实例

# 查看整数的 id
a = 10
print(id(a))  # 输出: 一个整数,如 4302400000

# 查看字符串的 id
s = "hello"
print(id(s))  # 输出: 一个整数

# 查看列表的 id
lst = [1, 2, 3]
print(id(lst))  # 输出: 一个整数

运行结果预期:

返回对象的唯一标识符(整数)。

代码解析:

  1. 每个对象都有唯一的 id。
  2. 不同对象的 id 通常不同。

示例 2:验证对象同一性

实例

# 同一对象多次引用
a = [1, 2, 3]
b = a
print(id(a) == id(b))  # 输出: True(a 和 b 指向同一对象)

# 复制对象
a = [1, 2, 3]
b = a.copy()
print(id(a) == id(b))  # 输出: False(a 和 b 是不同对象)

# 整数缓存(小整数)
a = 256
b = 256
print(id(a) == id(b))  # 输出: True(小整数被缓存)

a = 257
b = 257
print(id(a) == id(b))  # 输出: False(大整数不缓存)

运行结果预期:

True
False
True
False

代码解析:

  • 使用 == 比较 id 可以判断是否是同一对象。
  • Python 会对小整数(-5 到 256)进行缓存,所以相同值的变量可能共享 id。

示例 3:实际应用

实例

# 检查是否是同一对象
def check_same_object(a, b):
    return id(a) == id(b)

# 测试
list1 = [1, 2, 3]
list2 = list1
list3 = [1, 2, 3]

print(check_same_object(list1, list2))  # 输出: True
print(check_same_object(list1, list3))  # 输出: False

# 作为字典键(虽然不常用)
d = {}
obj = object()
d[obj] = "value"
print(d[obj])  # 输出: value

# 调试时查看对象
class Person:
    pass

p = Person()
print(f"对象 id: {id(p)}")
print(f"类 id: {id(Person)}")

运行结果预期:

True
False
value
对象 id: ...
类 id: ...

id() 主要用于调试、检查对象同一性、理解 Python 内存管理等方面。


Python3 内置函数 Python3 内置函数