La clase MessageField
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
MessageField se usa para definir mensajes y lograr una transmisión eficiente en la red o con el fin de procesar el espacio. Los mensajes se definen con clases Field.
El módulo protorpc.messages
proporciona MessageField
.
Constructor
El constructor de la clase MessageField se define de la siguiente manera:
-
class MessageField(message_type,
number,
[required=False | repeated=False])
-
Define los campos para los valores de submensajes.
Argumentos
- message_type
- El tipo de mensaje para el campo. Debe ser una subclase de Message.
- number
- Número del campo. Debe ser único por cada clase de mensaje.
- required=False
- Si el campo es obligatorio o no. Es mutuamente exclusivo con el argumento
repeated
; no especifiques repeated=True
si usas required=True
.
- repeated=False
- Si el campo se repite o no. Es mutuamente exclusivo con el argumento
required
; no especifiques required=True
si usas repeated=True
.
Genera un FieldDefinitionError si el message_type
no es válido.
Propiedad de clase
La clase MessageField brinda las siguientes propiedades:
- type
- El tipo de Python utilizado para los valores de este campo. Por ejemplo, en el caso
de DateTimeField,
type
es datetime.datetime
. Para MessageFields definidos por el usuario, type
es el tipo de mensaje especificado.
- message_type
- El tipo de mensaje subyacente usado para la serialización. En específico, este es el tipo que puedes almacenar en una instancia de una clase de mensaje. Por ejemplo, para DateTimeField, el tipo será
message_types.DateTimeMessage
. Para los campos de mensaje normales, será la subclase del mensaje protorpc. Por ejemplo:
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'>
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-04 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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 ```"]]