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