Classe MessageField
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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.
- nombre
- Numéro du champ. Doit être unique par classe de message.
- required=False
- Indique si le champ est obligatoire ou non. Exclusion mutuelle avec l'argument
repeated
. N'indiquez pas repeated=True
si vous utilisez required=True
.
- repeated=False
- Indique si le champ est répété ou non. Exclusion mutuelle avec l'argument
required
. N'indiquez pas required=True
si vous utilisez repeated=True
.
Déclenche 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 sera
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'>
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eThe \u003ccode\u003eMessageField\u003c/code\u003e class defines fields for sub-message values, enabling the efficient transmission of messages across network or process space.\u003c/p\u003e\n"],["\u003cp\u003eThe constructor of \u003ccode\u003eMessageField\u003c/code\u003e requires the \u003ccode\u003emessage_type\u003c/code\u003e and \u003ccode\u003enumber\u003c/code\u003e arguments, with optional \u003ccode\u003erequired\u003c/code\u003e and \u003ccode\u003erepeated\u003c/code\u003e arguments that are mutually exclusive.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003emessage_type\u003c/code\u003e specifies the message type of the field, and it must be a subclass of \u003ccode\u003eMessage\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003etype\u003c/code\u003e property of \u003ccode\u003eMessageField\u003c/code\u003e indicates the Python type used for the field's values, while \u003ccode\u003emessage_type\u003c/code\u003e reveals the underlying message type used for serialization.\u003c/p\u003e\n"]]],[],null,["# The MessageField Class\n\nThe MessageField class is used to define messages for efficient transmission\nacross network or process space. Messages are defined using\n[field\nclasses](/appengine/docs/legacy/standard/python/tools/protorpc/messages/fieldclasses).\n\n`MessageField` is provided by the `protorpc.messages`\nmodule.\n\nConstructor\n-----------\n\nThe constructor of the MessageField class is defined as follows:\n\n\nclass MessageField(message_type,\nnumber,\n\\[required=False \\| repeated=False\\])\n\n: Defines fields for sub-message values.\n\n **Arguments**\n\n message_type\n : The message type for the field. Must be a subclass of\n [Message](/appengine/docs/legacy/standard/python/tools/protorpc/messages/messageclass).\n\n number\n : Number of the field. Must be unique per message class.\n\n required=False\n : Whether or not this field is required. Mutually exclusive with the\n `repeated` argument; do not specify\n `repeated=True` if you use `required=True`.\n\n repeated=False\n : Whether or not this field is repeated. Mutually exclusive with the\n `required` argument; do not specify\n `required=True` if you use `repeated=True`.\n\n Raises a\n [FieldDefinitionError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#FieldDefinitionError)\n if the `message_type` is invalid.\n\nClass Property\n--------------\n\nThe MessageField class provides the following properties:\n\ntype\n: The Python type used for values of this field. For example, in the case\n of [DateTimeField](/appengine/docs/legacy/standard/python/tools/protorpc/messages/datetimefieldclass),\n `type` is `datetime.datetime`. For user defined\n MessageFields, `type` is the specified Message type.\n\nmessage_type\n: The underlying message type used for serialization. Specifically this is\n the type that you can store on an instance of a Message class. For example,\n for [DateTimeField](/appengine/docs/legacy/standard/python/tools/protorpc/messages/datetimefieldclass),\n the type will be `message_types.DateTimeMessage`. For normal\n message fields it will be the protorpc message subclass. For example:\n\n ```python\n class Sub(messages.Message):\n x = messages.IntegerField(1)\n\n class M(messages.Message):\n sub = messages.MessageField(Sub, 1)\n dt = message_types.DateTimeField(2)\n\n print 'M.sub.type =', M.sub.type\n print 'M.sub.message_type =', M.sub.message_type\n print 'M.dt.type =', M.dt.type\n print 'M.dt.message_type =', M.dt.message_type\n\n\n === output ===\n M.sub.type = \u003cclass '__main__.Sub\u003e\n M.sub.message_type = \u003cclass '__main__.Sub'\u003e\n M.dt.type = \u003ctype 'datetime.datetime'\u003e\n M.dt.message_type = \u003cclass 'protorpc.message_types.DateTimeMessage'\u003e\n ```"]]