如何检查两个实例是否属于同一个类?
class FooBar(object):
__init__(self, param):
self.param = param
self.param_2 = self.function_2(param)
self.param_3 = self.function_3()
它们是相同的吗?我所说的相同是指它们在所有变量中具有相同的值。
a = FooBar(param)
b = FooBar(param)
我想到了
if a == b:
print "a and b are identical"!
这样做会不会有副作用?
我提出这个问题的背景是单元测试。我想达到类似于:
self.failUnlessEqual(self.my_object.a_function(), another_object)
__eq__
中的__dict__
可能会返回True
,即使other
是一个完全不同的类,只要它具有相同的属性。我知道这是人为的。如果您希望防范此情况,请首先插入if self.__class__ != other.__class__: return False
。 - Lauritz V. Thaulow__eq__
,并且我有一个实例列表L_1 = [obj_1, obj_2, obj_3]
和另一个列表L_2 = [obj_1, obj_2, obj_3]
,那么L_1 == L_2
会按预期工作吗? - Aufwind