Klasse "Field"

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.