Klasse "MessageField"
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Die Klasse "MessageField" dient der Definition von Nachrichten für eine effiziente Übertragung über den Netzwerk- oder Prozessort. Nachrichten werden über Feldklassen definiert.
MessageField
wird vom Modul protorpc.messages
bereitgestellt.
Konstruktor
Der Konstruktor der MessageField-Klasse wird folgendermaßen definiert:
-
class MessageField(message_type,
number,
[required=False | repeated=False])
-
Definiert Felder für Werte von Unternachrichten.
Argumente
- message_type
- Der Nachrichtentyp für das Feld. Muss eine abgeleitete Klasse von Message sein.
- number
- Nummer des Felds. Muss für jede Nachrichtenklasse eindeutig sein.
- required=False
- Gibt an, ob es sich bei dem Feld um ein Pflichtfeld handelt. Dieses Argument und das Argument
repeated
schließen sich gegenseitig aus. Geben Sie repeated=True
nicht an, wenn Sie required=True
verwenden.
- repeated=False
- Gibt an, ob dieses Feld wiederholt wird. Dieses Argument und das Argument
required
schließen sich gegenseitig aus. Geben Sie required=True
nicht an, wenn Sie repeated=True
verwenden.
Löst einen FieldDefinitionError aus, wenn message_type
ungültig ist.
Klassenattribut
Die Klasse "MessageField" hat folgende Attribute:
- type
- Python-Typ, der für Werte dieses Felds verwendet wird. Im Fall von DateTimeField ist
type
beispielsweise datetime.datetime
. Bei benutzerdefinierten MessageFields ist type
der angegebene Nachrichtentyp.
- message_type
- Der zugrunde liegende Nachrichtentyp, der für die Serialisierung verwendet wird. Dies ist insbesondere der Typ, den Sie in der Instanz einer Nachrichtenklasse speichern können. Für DateTimeField lautet der Typ beispielsweise
message_types.DateTimeMessage
. Für normale Nachrichtenfelder ist dies die abgeleitete Klasse der ProtoRPC-Nachricht. Beispiel:
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'>
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-09-04 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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 ```"]]