Klasse "Field"
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Die Klasse "Field" ist die Basisklasse für alle in Nachrichten definierten Felder. Diese Klasse kann nicht von Entwicklern erweitert werden.
Field
wird vom Modul protorpc.messages
bereitgestellt.
Konstruktor
Der Konstruktor für die Klasse "Field" ist so definiert:
- class
Field
(message_type,
number,
[required=False | repeated=False],
variant=None,
default=None)
-
Initialisiert eine Instanz von "Field". In jeder abgeleiteten Klasse der Klasse "Field" muss Folgendes definiert sein:
VARIANTS
- Die von diesem Feld akzeptierten Variantentypen.
DEFAULT_VARIANT
- Standardvariantentyp, falls kein anderer Variantentyp im Konstruktor angegeben ist.
Argumente
- 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
nicht an, wenn Sie required
verwenden.
- repeated=False
- Gibt an, ob dieses Feld wiederholt wird. Schließt sich mit dem -Argument
required
gegenseitig aus. Geben Sie required=True
nicht an, wenn Sie auch repeated=True
verwenden.
- variant=None
- Stellt zusätzliche Codierungsinformationen bereit, die hauptsächlich von Protokollpuffern verwendet werden. Diese Varianten entsprechen den Type-Werten in
descriptor.proto
. Als Best Practice gilt, Standardwerte zu verwenden. Sie können aber auch Werte als 32 Bit, 64 Bit, unsigniert usw. angeben.
- default=None
- Standardwert für das Feld, falls in der zugrunde liegenden Anfrage kein anderer Wert gefunden wird.
Hinweis: Standardwerte sind für Wiederholungsfelder oder Nachrichtenfelder nicht zulässig.
Löst die folgenden Ausnahmen aus:
- InvalidVariantError, wenn eine ungültige Variante für das Feld angegeben wird.
- InvalidDefaultError, wenn ein ungültiger Standardwert für das Feld angegeben wird.
- FieldDefinitionError, wenn eine ungültige Nummer angegeben wird oder sich gegenseitig ausschließende Felder verwendet werden.
- InvalidNumberError, wenn die Feldnummer außerhalb des zulässigen Bereichs liegt oder reserviert ist.
Klassenattribut
Die FieldList-Klasse hat eine Property:
- default()
- Standardwert für das Feld.
Instanzmethoden
FieldList-Instanzen haben die folgenden Methoden:
- validate(value)
- Validiert einen Wert, der einem Feld zugewiesen wurde.
Argumente
- Wert
- Der auszuwertende Wert.
Löst bei einem unerwarteten Typ des Werts einen ValidationError aus.
- validate_default_element(value)
-
Validiert einen Wert, der einem Standardfeld zugewiesen wurde. Spezifisch für ein einzelnes Element.
Einige Felder gestatten möglicherweise die verzögerte Auflösung von Standardtypen, was bei Zirkeldefinitionsverweisen erforderlich ist. In diesem Fall kann der Standardwert ein Platzhalter sein, der nach Bedarf aufgelöst wird, nachdem alle Nachrichtenklassen definiert wurden.
Argumente
- Wert
- Zu validierender Standardwert.
Löst bei einem unerwarteten Typ des Werts einen ValidationError aus.
- validate_default(value)
-
Validiert den Standardwert eines Felds.
Argumente
- Wert
- Zu validierender Standardwert.
Löst bei einem unerwarteten Typ des Werts einen ValidationError aus.
- message_definition()
-
Ruft eine Nachrichtendefinition ab, die diese Felddefinition enthält. Gibt eine Definition für das Nachrichtenobjekt zurück, in dem das Feld enthalten ist. Gibt "None" zurück, wenn das Feld außerhalb einer Nachrichtenklasse definiert wird.
Löst bei einem unerwarteten Typ des Werts einen ValidationError aus.
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\u003eField\u003c/code\u003e class serves as the foundation for all fields within messages and cannot be extended by developers, and is provided by the \u003ccode\u003eprotorpc.messages\u003c/code\u003e module.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eField\u003c/code\u003e constructor takes parameters like \u003ccode\u003enumber\u003c/code\u003e, \u003ccode\u003erequired\u003c/code\u003e, \u003ccode\u003erepeated\u003c/code\u003e, \u003ccode\u003evariant\u003c/code\u003e, and \u003ccode\u003edefault\u003c/code\u003e to define field properties, and raises exceptions for invalid inputs, such as an invalid default, or mutually exclusive arguments.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eField\u003c/code\u003e class contains \u003ccode\u003eVARIANTS\u003c/code\u003e and \u003ccode\u003eDEFAULT_VARIANT\u003c/code\u003e properties that define the field's acceptable variant types, and its default variant type respectively.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eField\u003c/code\u003e instance methods include \u003ccode\u003evalidate\u003c/code\u003e, \u003ccode\u003evalidate_default_element\u003c/code\u003e, \u003ccode\u003evalidate_default\u003c/code\u003e to check values against expectations, and \u003ccode\u003emessage_definition\u003c/code\u003e to find the \u003ccode\u003eMessage\u003c/code\u003e that contains the Field.\u003c/p\u003e\n"],["\u003cp\u003eDefault values for Fields are not permitted for repeated fields or message fields, as specified by the argument \u003ccode\u003edefault=None\u003c/code\u003e in the constructor.\u003c/p\u003e\n"]]],[],null,["# The Field Class\n\nThe Field class is the base class for all fields defined on messages. This class cannot be extended by developers.\n\n`Field` is provided by the `protorpc.messages` module.\n\nConstructor\n-----------\n\nThe constructor of the Field class is defined as follows:\n\nclass\nField\n(message_type,\nnumber,\n\\[required=False \\| repeated=False\\], variant=None, default=None)\n\n: Initializes an Field instance. Each sub-class of Field must define the following:\n\n `VARIANTS`\n : Set of variant types accepted by that field.\n\n `DEFAULT_VARIANT`\n : Default variant type if not specified in constructor.\n **Arguments**\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 `repeated` argument; do not specify `repeated` if you use `required`.\n\n repeated=False\n : Whether or not this field is repeated. Mutually exclusive with the `required` argument; do not specify `required=True` if you also use `repeated=True`.\n\n variant=None\n : Provides additional encoding information that is mainly used by protocol buffers. These variants map to the Type values in `descriptor.proto`. Best practice is to use default values, but you can specify values as 32-bit, 64-bit, unsigned, etc.\n\n default=None\n\n : Default value for the field if not found in the underlying request. **Note:** Default values are not permitted for repeated fields or message fields.\n\n Raises the following exceptions:\n\n - [InvalidVariantError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#InvalidVariantError) when invalid variant for field is provided.\n - [InvalidDefaultError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#InvalidDefaultError) when invalid default for field is provided.\n - [FieldDefinitionError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#FieldDefinitionError) when invalid number provided or mutually exclusive fields are used.\n - [InvalidNumberError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#InvalidNumberError) when the field number is out of range or reserved.\n\nClass Property\n--------------\n\nThe FieldList class has one property:\n\ndefault()\n: The default value for the field.\n\nInstance Methods\n----------------\n\nFieldList instances have the following methods:\n\nvalidate(value)\n: Validates a value assigned to a field.\n **Arguments**\n\n value\n : The value to evaluate.\n\n Raises a [ValidationError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#ValidationError) if the value is not an expected type.\n\nvalidate_default_element(value)\n\n: Validates a value assigned to a default field. Specific to a single element.\n\n Some fields may allow for delayed resolution of default types necessary in the case of circular definition references. In this case, the default value might be a placeholder that is resolved when needed after all the message classes are defined.\n **Arguments**\n\n value\n : Default value to validate.\n\n Raises a [ValidationError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#ValidationError) if the value is not an expected type.\n\nvalidate_default(value)\n\n: Validates that a field's default value.\n\n **Arguments**\n\n value\n : Default value to validate.\n\n Raises a [ValidationError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#ValidationError) if the value is not an expected type.\n\nmessage_definition()\n\n: Gets a message definition that contains this Field definition. Returns a definition for the [Message](/appengine/docs/legacy/standard/python/tools/protorpc/messages/messageclass) object that contains the Field. Returns None if Field is defined outside of a message class.\n\n Raises a [ValidationError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#ValidationError) if the value is not an expected type."]]