Is there any way to check if two objects have the same values, other than to iterate through their attributes and manually compare their values?
You can compare namedtuple directly. Otherwise you have to define either your own rich comparisons __eq__ and possibly __ne__ or your own __cmp__
__eq__
__ne__
__cmp__
see the datamodel for more info