Python 2.7 ha raggiunto la fine del supporto
e verrà
ritirato
il 31 gennaio 2026. Dopo il ritiro, non potrai eseguire il deployment di applicazioni Python 2.7, anche se la tua organizzazione ha utilizzato in precedenza un criterio dell'organizzazione per riattivare i deployment di runtime legacy. Le tue applicazioni Python 2.7 esistenti continueranno a essere eseguite e a ricevere traffico dopo la
data di ritiro. Ti consigliamo di
eseguire la migrazione all'ultima versione supportata di Python.
La classe MessageField
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
La classe MessageField viene utilizzata per definire i messaggi per una trasmissione efficiente tra la rete o lo spazio di processo. I messaggi vengono definiti utilizzando
classi
di campi.
MessageField
è fornito dal modulo protorpc.messages
.
Costruttore
Il costruttore della classe MessageField è definito come segue:
-
class MessageField(message_type,
number,
[required=False | repeated=False])
-
Definisce i campi per i valori dei messaggi secondari.
Argomenti
- message_type
- Il tipo di messaggio per il campo. Deve essere una sottoclasse di
Message.
- number
- Numero del campo. Deve essere univoco per ogni classe di messaggio.
- required=False
- Se questo campo è obbligatorio o meno. Si escludono a vicenda con l'argomento
repeated
. Non specificare
repeated=True
se utilizzi required=True
.
- repeated=False
- Indica se questo campo viene ripetuto o meno. Si escludono a vicenda con l'argomento
required
. Non specificare
required=True
se utilizzi repeated=True
.
Genera un errore FieldDefinitionError se message_type
non è valido.
Proprietà del corso
La classe MessageField fornisce le seguenti proprietà:
- type
- Il tipo di Python utilizzato per i valori di questo campo. Ad esempio, nel caso di DateTimeField,
type
è datetime.datetime
. Per MessageFields definito dall'utente, type
è il tipo di messaggio specificato.
- message_type
- Il tipo di messaggio sottostante utilizzato per la serializzazione. Nello specifico, si tratta del tipo che puoi archiviare in un'istanza di una classe Message. Ad esempio, per DateTimeField, il tipo sarà
message_types.DateTimeMessage
. Per i campi dei messaggi normali, sarà la sottoclasse del messaggio protorpc. Ad esempio:
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 quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-09-04 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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 ```"]]