Classe MessageField

La classe MessageField est utilisée pour définir des messages en vue d'une transmission efficace sur un réseau ou un espace de traitement. Les messages sont définis à l'aide de classes de champs.

La classe MessageField est fournie par le module protorpc.messages.

Constructeur

Le constructeur de la classe MessageField est défini comme suit :

class MessageField(message_type, number, [required=False | repeated=False])

Définit des champs pour les valeurs des sous-messages.

Arguments

message_type
Type de message pour le champ. Doit être une sous-classe de Message.
number
Numéro du champ. Doit être unique par classe de message.
required=False
Indique si le champ est obligatoire ou non. Mutuellement exclusif avec l'argument repeated ; ne spécifiez pas repeated=True si vous utilisez required=True.
repeated=False
Indique si le champ est répété ou non. Mutuellement exclusif avec l'argument required ; ne spécifiez pas required=True si vous utilisez repeated=True.

Génère une erreur FieldDefinitionError lorsque message_type n'est pas valide.

Propriété de la classe

La classe MessageField fournit les propriétés suivantes :

type
Type Python utilisé pour les valeurs de ce champ. Par exemple, dans le cas de DateTimeField, l'élément type est datetime.datetime. Pour la classe MessageFields définie par l'utilisateur, type est le type de message spécifié.
message_type
Type de message sous-jacent utilisé pour la sérialisation. Plus précisément, il s'agit du type que vous pouvez stocker sur une instance d'une classe Message. Par exemple, pour DateTimeField, le type correspond à message_types.DateTimeMessage. Pour les champs de message standards, il s'agit de la sous-classe de messages protorpc. Exemple :
class Sub(messages.Message):
  x = messages.IntegerField(1)

class M(messages.Message):
  sub = messages.MessageField(Sub, 1)
  dt = message_types.DateTimeField(2)

print 'M.sub.type         =', M.sub.type
print 'M.sub.message_type =', M.sub.message_type
print 'M.dt.type          =', M.dt.type
print 'M.dt.message_type  =', M.dt.message_type

=== output ===
M.sub.type                 = <class '__main__.Sub>
M.sub.message_type = <class '__main__.Sub'>
M.dt.type                   = <type 'datetime.datetime'>
M.dt.message_type   = <class 'protorpc.message_types.DateTimeMessage'>
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement standard App Engine pour Python