| 812 | return not self.__eq__(other) |
| 813 | |
| 814 | class CD: |
| 815 | def __init__(self, c, d): |
| 816 | self.c = c |
| 817 | self.d = d |
| 818 | |
| 819 | def __composite_values__(self): |
| 820 | return (self.c, self.d) |
| 821 | |
| 822 | def __eq__(self, other): |
| 823 | return ( |
| 824 | isinstance(other, CD) |
| 825 | and self.c == other.c |
| 826 | and self.d == other.d |
| 827 | ) |
| 828 | |
| 829 | def __ne__(self, other): |
| 830 | return not self.__eq__(other) |
| 831 | |
| 832 | class Thing: |
| 833 | def __init__(self, ab): |
no outgoing calls