La classe operativa

La classe Field è la classe base per tutti i campi definiti nei messaggi. Questo corso non può essere esteso dagli sviluppatori.

Field è fornito dal modulo protorpc.messages.

Costruttore

Il costruttore della classe Field è definito come segue:

classe Campo (message_type, numero, [required=False | repeated=False], variante=nessuna, default=None)

Inizializza un'istanza Field. Ogni sottoclasse di Field deve definire quanto segue:

VARIANTS
Insieme di tipi di varianti accettati da quel campo.
DEFAULT_VARIANT
Tipo di variante predefinito se non specificato nel costruttore.
Argomenti
numero
Numero del campo. Deve essere univoco per ogni classe di messaggio.
required=False
Indica se questo campo è obbligatorio. Si escludono a vicenda con l'argomento repeated; non specificare repeated se utilizzi required.
repeated=False
Indica se questo campo è ripetuto. Si escludono a vicenda con l'argomento required; non specificare required=True se utilizzi anche repeated=True.
variant=None
Fornisce informazioni aggiuntive sulla codifica utilizzate principalmente dai buffer di protocollo. Queste varianti mappano ai valori Type in descriptor.proto. La best practice è utilizzare valori predefiniti, ma puoi specificare valori a 32 bit, 64 bit, senza firma e così via.
default=None
Valore predefinito del campo se non lo trovi nella richiesta sottostante.

Nota:non sono consentiti valori predefiniti per i campi ripetuti o dei messaggi.

Genera le seguenti eccezioni:

Proprietà classe

La classe FieldList ha una proprietà:

default()
Il valore predefinito del campo.

Metodi di istanza

Le istanze FieldList hanno i seguenti metodi:

convalida(valore)
Convalida un valore assegnato a un campo. Argomenti
valore
Il valore da valutare.

Aumenta il valore ValidationError se il valore non è un tipo previsto.

validate_default_element(valore)

Convalida un valore assegnato a un campo predefinito. Specifico di un singolo elemento.

Alcuni campi potrebbero consentire la risoluzione ritardata dei tipi predefiniti necessari nel caso di riferimenti a definizione circolare. In questo caso, il valore predefinito potrebbe essere un segnaposto che viene risolto quando necessario dopo aver definito tutte le classi dei messaggi.

Argomenti
valore
Valore predefinito da convalidare.

Aumenta il valore ValidationError se il valore non è un tipo previsto.

validate_default(valore)

Convalida il valore predefinito di un campo.

Argomenti
valore
Valore predefinito da convalidare.

Aumenta il valore ValidationError se il valore non è un tipo previsto.

message_definition()

Recupera una definizione del messaggio che contiene questa definizione del campo. Restituisce una definizione dell'oggetto Message che contiene il campo. Restituisce None se il Campo è definito al di fuori di una classe di messaggio.

Aumenta il valore ValidationError se il valore non è un tipo previsto.