Borrowing the documentation from the __contains__ documentation
__contains__
print set.__contains__.__doc__ x.__contains__(y) <==> y in x.
This is because CA doesn't implement __hash__
CA
A sensible implementation would be:
def __hash__(self): return hash(self.name)