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.
- 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 Sierepeated
nicht an, wenn Sierequired
verwenden. - repeated=False
- Gibt an, ob dieses Feld wiederholt wird. Schließt sich mit dem -Argument
required
gegenseitig aus. Geben Sierequired=True
nicht an, wenn Sie auchrepeated=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.