La classe Field

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 viene definito come segue:

class  Field (message_type, number, [required=False | repeated=False], variant=None, default=None)

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

VARIANTS
Insieme dei tipi di varianti accettati dal campo.
DEFAULT_VARIANT
Tipo di variante predefinito se non specificato nel costruttore.
Argomenti
numero
Numero del campo. Deve essere univoco per ogni classe di messaggi.
required=Falso
Indica se questo campo è obbligatorio o meno. Si escludono a vicenda con l'argomento repeated; non specificare repeated se usi required.
repeated=Falso
Indica se questo campo è ripetuto o meno. Si escludono a vicenda con l'argomento required; non specificare required=True se utilizzi anche repeated=True.
variante=Nessuna
Fornisce informazioni di codifica aggiuntive utilizzate principalmente dai buffer di protocollo. Queste varianti vengono mappate ai valori del tipo in descriptor.proto. La best practice prevede l'uso di valori predefiniti, ma puoi specificare valori come 32 bit, 64 bit, senza firma e così via.
default=Nessuno
Valore predefinito del campo se non è presente nella richiesta sottostante.

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

solleva le seguenti eccezioni:

Proprietà della classe

La classe FieldList ha una proprietà:

valore predefinito
Il valore predefinito per il campo.

Metodi di istanza

I metodi delle istanze FieldList sono i seguenti:

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

Genera un valore ValidationError se il valore non è di tipo previsto.

validate_default_element(valore)

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

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

Argomenti
valore
Valore predefinito da convalidare.

Genera un valore ValidationError se il valore non è di tipo previsto.

validate_default(valore)

Convalida il valore predefinito di un campo.

Argomenti
valore
Valore predefinito da convalidare.

Genera un valore ValidationError se il valore non è di tipo previsto.

message_definition()

Restituisce una definizione di messaggio che contiene questa definizione di campo. Restituisce una definizione per l'oggetto Message che contiene il campo. Restituisce None se il campo è definito al di fuori di una classe di messaggio.

Genera un valore ValidationError se il valore non è di tipo previsto.