【发布时间】:2017-03-07 16:52:44
【问题描述】:
搜索时,我注意到id() 函数返回一个整数,并保证该对象是唯一且恒定的。
当比较两个不同的对象得到结果时,这可能会导致这些不同的结果??
我在电子书中看到一个例子,比较 id(Car()) == id (Car()) 返回 False 但运行相同的代码时返回 True
类 Car.py
class Car:
pass
空闲代码
>>> from Car import Car
>>> ferrari = Car()
>>> lamborghini = Car()
>>> id(lamborghini) == id(ferrari)
False
>>> id(Car()) == id(Car())
True
【问题讨论】:
-
id(object()) == id(object())是否不是真正的 Python 问题。这取决于实现以及它是否 a) 立即销毁不需要的对象和 b) 为下一个对象重用最后释放的空间。至少某些版本的 CPython 至少对某些对象类执行此操作。 id() 的主要用途是测试实现的细节。
标签: python python-3.x