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????
问题答案:
使用assertEqual
这两个对象不必具有相同的类型,它们只需要具有相同的值即可。相比之下,使用assertIs
两个对象需要是相同的对象。
assertEqual
像==
运算符一样测试相等性:
运算符<,>,==,>
=,<=和!=比较两个对象的值。这些对象不必具有相同的类型。如果两者都是数字,则它们将转换为通用类型。否则,不同类型的对象总是比较不相等,并且被一致地,任意地排序。
assertIs
测试与is
和is not
运算符相同的对象标识:
运算符是否测试对象标识:并且仅当x和y是同一对象时,x is y才是true。x不是y会产生反真值。
以上引用均来自Python文档的5.9比较。