📜  Python id()函数(1)

📅  最后修改于: 2023-12-03 15:34:01.174000             🧑  作者: Mango

Python id()函数

id()函数是Python内置函数之一,用于获取对象的内存地址(唯一标识符)。

语法
id(object)

参数说明:

  • object:表示需要获取内存地址的对象。
    • 如果不提供参数,则返回当前作用域里的命名空间对象(也就是Python对象模型里的module对象)地址。

返回值说明:

  • 返回对象的内存地址(十进制整数)。
示例
示例 1:获取不同类型对象的内存地址
a = 1
b = 1.0
c = "Hello World"
d = [1, 2, 3]
e = {1: "a", 2: "b", 3: "c"}

print("a: ", id(a))
print("b: ", id(b))
print("c: ", id(c))
print("d: ", id(d))
print("e: ", id(e))

输出结果:

a:  140714711410576
b:  497820560464
c:  2798375839176
d:  2798376161736
e:  2798375672456

从输出结果可以看出,不同类型对象具有不同的内存地址,即使它们的值相同。

示例 2:获取不同变量的内存地址
a = 1
b = a
c = a + 1

print("a: ", id(a))
print("b: ", id(b))
print("c: ", id(c))

输出结果:

a:  140714711410576
b:  140714711410576
c:  140714711410608

从输出结果可以看出,同一个变量和不同变量(但值相等)具有相同的内存地址,而不同变量(且值不同)具有不同的内存地址。

注意事项
  • id()函数无法保证内存地址具有稳定性,不同运行条件下可能具有不同的内存地址。因此不应该依赖内存地址来比较对象是否相等,应该使用==运算符。
  • id()函数返回的内存地址通常是 CPython 实现的内存地址,其它 Python 实现可能返回不同的内存地址。
  • id()函数返回的内存地址通常是一串十进制整数,但在一些特殊情况下(如PyPy3)可能返回一串十六进制字符串,应注意进行判断。