serialized attributes add hash code comparison

ISSUE: currently accesses all attributes to store hash values.
If I use @attributes instead of __send__, it will incorrectly store hash
lazily set the attributes hash values after an attribute is read