for every x in self.fields call the method x.__deepcopy__ with an argument memo, put the result into a tuple, substitute it for result.fields.
result . fields = tuple ( [ x . __deepcopy__ ( memo ) for x in self . fields ] )