EnumField 클래스

EnumField 클래스는 enum 값에 대한 정의를 제공합니다. Enum 필드에는 연결된 enum 유형이 확인될 때까지 지연되는 기본값이 있을 수 있습니다. 이 값은 특정 순환 참조를 지원하는 데 필요합니다. 예를 들면 다음과 같습니다.

from protorpc import messages

class Message1(messages.Message):

    class Color(messages.Enum):
        RED = 1
        GREEN = 2
        BLUE = 3

    # Validate this field's default value when default is accessed.
    animal = messages.EnumField('Message2.Animal', 1, default='HORSE')

class Message2(messages.Message):

    class Animal(messages.Enum):
        DOG = 1
        CAT = 2
        HORSE = 3

    # This fields default value will be validated right away since Color is
    # already fully resolved.
    color = messages.EnumField(Message1.Color, 1, default='RED')

EnumFieldprotorpc.messages 모듈에서 제공됩니다.

생성자

EnumField 클래스의 생성자는 다음과 같이 정의됩니다.

class EnumField(enum_type, number, required, repeated, variant, default)

Enum 값에 대한 필드 정의를 제공합니다.

인수
enum_type
필드의 Enum 유형입니다. Enum의 서브클래스여야 합니다.
number
필드의 숫자입니다. 메시지 클래스별로 고유해야 합니다.
required
이 필드가 필수인지 여부입니다. repeated 인수와 상호 배타적입니다. required를 사용하는 경우 repeated를 지정하지 마세요.
repeated
이 필드가 반복되는지 여부입니다. required 인수와 상호 배타적입니다. repeated를 사용하는 경우 required를 지정하지 마세요.
variant
필드 유형을 추가로 지정합니다. 일부 필드 유형은 기본 전송 형식을 기준으로 추가로 제한됩니다. 기본값을 사용하는 것이 가장 좋지만 개발자는 이 필드를 사용하여 정수 필드를 32비트 정수 또는 기본 64비트로 선언할 수 있습니다.
default
스트림에서 찾을 수 없는 경우 필드에 사용할 기본값입니다.

enum_type이 유효하지 않으면 FieldDefinitionError가 발생합니다.

클래스 속성

EnumField 클래스는 다음 클래스 속성을 제공합니다.

type()
필드에 사용되는 Enum 유형입니다.
default()
enum 필드의 기본값입니다. 기본값이 확인되지 않는 경우 Enum 유형을 기본값으로 사용합니다.

인스턴스 메소드

EnumField 인스턴스에는 다음과 같은 메소드가 있습니다.

validate_default_element(value)
Enum 필드의 기본 요소에 대한 유효성을 검사합니다. Enum 필드는 필드 유형이 확인되지 않은 경우 지연된 기본값 확인을 허용합니다. 필드의 기본값은 문자열이거나 정수일 수 있습니다. 필드의 Enum 유형이 확인된 경우 해당 유형에 대해 기본값의 유효성이 검사됩니다.