MST

星途 面试题库

面试题:Python中id()函数在对象生命周期中的作用

请阐述在Python中,当一个对象从创建到销毁的过程中,id()函数返回值的变化情况,并举例说明。
37.6万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
  1. 变化情况阐述
    • 在Python中,当一个对象被创建时,id()函数返回一个唯一标识该对象的整数值,这个值在对象的生命周期内通常是不变的。
    • 当对象被销毁(例如不再有任何引用指向它,被垃圾回收机制回收),这个对象的id所代表的内存空间被释放,该id也就失去了意义,后续新创建的对象可能会被分配到这块释放的内存空间,但会有新的id值。
  2. 举例说明
# 创建一个整数对象
num = 10
print(f"对象num创建后的id: {id(num)}")
# 重新赋值,旧的整数对象(值为10)如果没有其他引用,会被销毁,新对象(值为20)创建
num = 20
print(f"对象num重新赋值后的id: {id(num)}")

上述代码中,首先创建了值为10的整数对象,打印其id,然后重新赋值为20,此时旧的对象(值为10)如果没有其他引用会被销毁,新的对象(值为20)创建,再次打印id,两次id值通常不同(在CPython实现中是这样,某些特殊情况或其他Python实现可能有差异)。