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.
- 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 specificarerepeated
se utilizzirequired
. - repeated=False
- Indica se questo campo è ripetuto. Si escludono a vicenda con l'argomento
required
; non specificarerequired=True
se utilizzi ancherepeated=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:
- InvalidVariantError quando viene fornita una variante non valida per il campo.
- InvalidDefaultError: quando per il campo viene fornito un valore predefinito non valido.
- FieldDefinitionError quando vengono utilizzati campi che si escludono a vicenda o viene fornito un numero non valido.
- InvalidNumberError quando il numero di campo è fuori intervallo o prenotato.
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.