def eq_obj_contents(l, r):
if l.__class__ is not r.__class__:<EOL><INDENT>return False<EOL><DEDENT>if hasattr(l, "<STR_LIT>"):<EOL><INDENT>return eq_obj_slots(l, r)<EOL><DEDENT>else:<EOL><INDENT>return l.__dict__ == r.__dict__<EOL><DEDENT>
Compares object contents, supports slots
:param l:
:param r:
:return: