La classe Field è la classe di 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 di 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. Esclusivo 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 corrispondono ai valori di tipo 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 viene fornito un numero non valido o campi che si escludono a vicenda.
- InvalidNumberError quando il numero di campo non rientra nell'intervallo o è riservato.
Proprietà classe
La classe FieldList ha una proprietà:
- default()
- Il valore predefinito per il campo.
Metodi istanza
Le istanze di FieldList hanno i seguenti metodi:
- validate(value)
- 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 per 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- value
- Valore predefinito da convalidare.
Aumenta il valore ValidationError se il valore non è un tipo previsto.
- validate_default(value)
-
Convalida il valore predefinito di un campo.
Argomenti- value
- Valore predefinito da convalidare.
Aumenta il valore ValidationError se il valore non è un tipo previsto.
- message_definition()
-
Recupera una definizione di messaggio che contiene questa definizione di 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.