Field 클래스는 메시지에 정의된 모든 필드의 기본 클래스입니다. 개발자가 이 클래스를 확장할 수 없습니다.
Field는 protorpc.messages 모듈에서 제공됩니다.
생성자
Field 클래스의 생성자는 다음과 같이 정의됩니다.
- class Field(message_type, number, [required=False | repeated=False], variant=None, default=None)
 - 
    
Field 인스턴스를 초기화합니다. Field의 각 하위 클래스는 다음을 정의해야 합니다.
VARIANTS- 해당 필드에서 허용되는 변형 유형 집합입니다.
 DEFAULT_VARIANT- 생성자에서 지정되지 않은 경우, 기본 변형 유형입니다.
 
- 숫자
 - 필드 번호입니다. 메시지 클래스마다 고유해야 합니다.
 - required=False
 - 이 필드가 필수인지 여부입니다. 
repeated인수와 상호 배타적입니다.required를 사용하는 경우repeated를 지정하지 마세요. - repeated=False
 - 이 필드가 반복되는지 여부입니다. 
required인수와 상호 배타적입니다.repeated=True를 사용하는 경우required=True를 지정하지 마세요. - variant=None
 - 주로 프로토콜 버퍼에 사용되는 추가 인코딩 정보를 제공합니다. 이러한 변형은 
descriptor.proto의 Type 값에 매핑됩니다. 권장사항은 기본값을 사용하는 것이지만 32비트, 64비트, 부호 없는 형식 등의 값을 지정할 수 있습니다. - default=None
 - 기본 요청에 없는 경우, 필드의 기본값입니다. 
참고: 반복 필드 또는 메시지 필드에는 기본값이 허용되지 않습니다.
 
다음과 같은 예외가 발생합니다.
- InvalidVariantError: 필드의 잘못된 변형을 제공한 경우
 - InvalidDefaultError: 필드의 잘못된 기본값을 제공한 경우
 - FieldDefinitionError: 잘못된 숫자를 제공하거나 상호 배타적인 필드를 사용한 경우
 - InvalidNumberError: 필드 번호가 범위를 벗어나거나 예약되어 있는 경우
 
 
클래스 속성
FieldList 클래스에는 속성이 한 개 있습니다.
- default()
 - 필드의 기본값입니다.
 
인스턴스 메소드
FieldList 인스턴스에는 다음과 같은 메소드가 있습니다.
- validate(value)
 - 필드에 할당된 값 유효성을 검사합니다. 
    인수
    
- value
 - 평가할 값입니다.
 
값이 예상 유형이 아닌 경우 ValidationError가 발생합니다.
 - validate_default_element(value)
 - 
      
기본 필드에 할당된 값 유효성을 검사합니다. 단일 요소에만 해당됩니다.
순환 정의 참조의 경우, 일부 필드는 필요한 기본 유형의 지연된 확인을 허용할 수 있습니다. 이런 경우, 기본값은 모든 메시지 클래스를 정의한 후 필요할 때 확인되는 자리표시자일 수 있습니다.
인수- value
 - 유효성을 검사할 기본값입니다.
 
값이 예상 유형이 아닌 경우 ValidationError가 발생합니다.
 - validate_default(value)
 - 
      
필드의 기본값 유효성을 검사합니다.
인수- value
 - 유효성을 검사할 기본값입니다.
 
값이 예상 유형이 아닌 경우 ValidationError가 발생합니다.
 - message_definition()
 - 
      
이 필드 정의를 포함하는 메시지 정의를 가져옵니다. Field가 포함된 Message 객체의 정의를 반환합니다. Field가 메시지 클래스 외부에 정의된 경우 None을 반환합니다.
값이 예상 유형이 아닌 경우 ValidationError가 발생합니다.