La classe EnumField fournit les définitions des valeurs enum. Les champs enum peuvent présenter des valeurs par défaut retardées tant que le type d'enum associé n'est pas résolu. Cela est nécessaire pour reconnaître certaines références circulaires. Exemple :
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')
La classe EnumField
est fournie par le module protorpc.messages
.
Constructeur
Le constructeur de la classe EnumField est défini comme suit :
- class EnumField(enum_type, number, required, repeated, variant, default)
-
Fournit une définition de champ pour les valeurs enum.
Arguments- enum_type
- Type d'enum d'un champ. Doit être une sous-classe d'Enum.
- nombre
- Numéro du champ. Doit être unique par classe de message.
- obligatoire
- Indique si le champ est obligatoire ou non. Exclusion mutuelle avec l'argument
repeated
. N'indiquez pasrepeated
si vous utilisezrequired
. - repeated
- Indique si le champ est répété ou non. Exclusion mutuelle avec l'argument
required
. N'indiquez pasrequired
si vous utilisezrepeated
. - variant
- Précise davantage le type du champ. Certains types de champs sont plus limités en fonction du format de transmission sous-jacent. Il est recommandé d'utiliser la valeur par défaut, mais les développeurs peuvent utiliser ce champ pour définir un champ d'entier de 32 bits au lieu de 64 bits par défaut.
- default
- Valeur par défaut à utiliser pour le champ si elle est introuvable dans le flux.
Déclenche une erreur FieldDefinitionError lorsque
enum_type
n'est pas valide.
Propriétés des classes
La classe EnumField fournit les propriétés de classes suivantes :
- type()
- Type d'enum utilisé pour le champ.
- default()
- Valeur par défaut du champ enum. Si la valeur par défaut n'est pas résolue, utilise le type Enum comme valeur par défaut.
Méthodes des instances
Les instances EnumField utilisent la méthode suivante :
- validate_default_element(value)
- Valide l'élément par défaut du champ enum. Les champs enum autorisent la résolution rétardée des valeurs par défaut lorsque le type du champ n'a pas été résolu. La valeur par défaut d'un champ peut être une chaîne ou un entier. Si le type enum du champ a été résolu, la valeur par défaut est validée par rapport à ce type.