在单元测试的上下文中,python关键字“is”是否与函数id()相同?

时间:2013-03-17 16:59:37

标签: python unit-testing keyword

我试过阅读文档,但无法得到明确的答案。

id(a) == id(b)

相同
a is b

同样是

import unittest
unittest.TestCase.assertNotEqual(id(a), id(b))

因此与

相同
import unittest
unittest.TestCase.assertIsNot(a, b)

1 个答案:

答案 0 :(得分:1)

CPython中的

“id”为您提供所引用对象的内存地址。该地址唯一标识同一python进程中的对象。

因此,

的含义
id(a) == id(b)

“实例a和b的内存地址是否相同?”相当于  “a和b是否引用同一个对象?”

a is b

来自“id”的文档字符串:

  

id(object) - >整数

     

返回对象的标识。这保证是独一无二的   同时存在的对象。 (提示:它是对象的内存地址。)