assertEqual和assertIs有什么区别(assertIs在Python 2.7中引入)?
参考资料 - http://docs.python.org/library/unittest.html#assert-methods
assertEqual(a, b) # checks that a == b
assertIs(a, b) # checks that a is b <---- whatever that means????
1 个回答
24
使用 assertEqual
时,两个对象不需要是同一种类型,只要它们的值相同就可以了。而使用 assertIs
时,两个对象必须是同一个对象。
assertEqual
就像 ==
操作符一样,用来检查两个对象的值是否相等:
操作符 <, >, ==, >=, <= 和 != 用来比较两个对象的值。这两个对象不需要是同一种类型。如果它们都是数字,会被转换成一种共同的类型。否则,不同类型的对象总是被认为不相等,并且它们的顺序是有规律但又是任意的。
assertIs
用来检查对象的身份,和 is
以及 is not
操作符的作用一样:
操作符
is
和is not
用来检查对象是否是同一个:如果x is y
为真,说明x
和y
是同一个对象;而x is not y
则是相反的结果。
以上内容摘自 Python 文档的 5.9 比较 部分。