'Returns a copy of descriptor, optionally changing the field number.'

def Copy(self, field_number=None):

    result = copy.copy(self)
    if (field_number is not None):
        result.field_number = field_number
        result.CalculateTags()
    return result
