understanding python dataclasses