A classe EnumField

A classe EnumField fornece definições para valores de enum. Os campos de enum podem ter valores padrão que são atrasados até que o tipo de enum associado seja resolvido. Isso é necessário para aceitar certas referências circulares. Por exemplo:

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')

EnumField é fornecido pelo módulo protorpc.messages.

Construtor

O construtor da classe EnumField é definido assim:

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

Fornece uma definição de campo para valores de Enum.

Argumentos
enum_type
O tipo de Enum para um campo. Precisa ser uma subclasse de Enum.
number
O número do campo. Precisa ser exclusivo por classe de mensagem.
required
Se o campo é obrigatório ou não. Ele e o argumento repeated são mutuamente excludentes. Não especifique repeated se você usar required.
repeated
Se o campo é repetido ou não. Ele e o argumento required são mutuamente excludentes. Não especifique required se você usar repeated.
variant
Especifica ainda mais o tipo de campo. Alguns tipos de campo são restritos ainda mais com base no formato wire subjacente. A prática recomendada é usar o valor padrão, mas os desenvolvedores podem usar este campo para declarar um campo de número inteiro como inteiro de 32 bits X o padrão de 64 bits.
default
Valor padrão a ser usado para o campo se não for encontrado no stream.

Gera um FieldDefinitionError quando enum_type é inválido.

Propriedades da classe

A classe EnumField fornece as seguintes propriedades de classe:

type()
Tipo de Enum usado para o campo.
default()
Padrão para o campo de enum. Caso o valor padrão não seja resolvido, usa o tipo Enum como o padrão.

Métodos de instância

Instâncias de EnumField têm o seguinte método:

validate_default_element(value)
Valida o elemento padrão do campo Enum. Os campos Enum permitem a resolução atrasada de valores padrão quando o tipo de campo não foi resolvido. O valor padrão de um campo pode ser uma string ou um número inteiro. Se o tipo Enum do campo foi resolvido, o valor padrão é validado em relação ao tipo.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python 2