Python 2.7 ha raggiunto la fine del supporto
e verrà
ritirato
il 31 gennaio 2026. Dopo il ritiro, non potrai eseguire il deployment di applicazioni Python 2.7, anche se la tua organizzazione ha utilizzato in precedenza un criterio dell'organizzazione per riattivare i deployment di runtime legacy. Le tue applicazioni Python 2.7 esistenti continueranno a essere eseguite e a ricevere traffico dopo la
data di ritiro. Ti consigliamo di
eseguire la migrazione all'ultima versione supportata di Python.
La classe EnumField
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
La classe EnumField fornisce definizioni per i valori enum. I campi enum possono avere valori predefiniti che vengono ritardati fino alla risoluzione del tipo di enum associato. Questo è necessario per supportare determinati riferimenti circolari. Ad esempio:
from protorpc import messages
class Message1(messages.Message):
class Color(messages.Enum):
RED = 1
GREEN = 2
BLUE = 3
# Validate this field's default value when default is accessed.
animal = messages.EnumField('Message2.Animal', 1, default='HORSE')
class Message2(messages.Message):
class Animal(messages.Enum):
DOG = 1
CAT = 2
HORSE = 3
# This fields default value will be validated right away since Color is
# already fully resolved.
color = messages.EnumField(Message1.Color, 1, default='RED')
EnumField
è fornito dal modulo protorpc.messages
.
Costruttore
Il costruttore della classe EnumField è definito come segue:
- class EnumField(enum_type, number, required, repeated, variant, default)
-
Fornisce una definizione di campo per i valori Enum.
Argomenti
- enum_type
- Il tipo Enum per un campo. Deve essere una sottoclasse di Enum.
- number
- Il numero del campo. Deve essere univoco per ogni classe di messaggio.
- obbligatorio
- Se questo campo è obbligatorio o meno. Esclusivo con l'argomento
repeated
. Non specificare repeated
se utilizzi required
.
- ripetute
- Indica se questo campo viene ripetuto o meno. Esclusivo con l'argomento
required
. Non specificare required
se utilizzi repeated
.
- variant
- Specifica ulteriormente il tipo di campo. Alcuni tipi di campi sono ulteriormente limitati in base al formato di trasmissione sottostante. La best practice consiste nell'utilizzare il valore predefinito, ma gli sviluppatori possono utilizzare questo campo per dichiarare un campo di tipo intero come intero a 32 bit anziché il valore predefinito di 64 bit.
- default
- Valore predefinito da utilizzare per il campo se non viene trovato nello stream.
Genera un errore FieldDefinitionError quando enum_type
non è valido.
Proprietà del corso
La classe EnumField fornisce le seguenti proprietà di classe:
- type()
- Tipo di enum utilizzato per il campo.
- default()
- Valore predefinito per il campo enum. Se il valore predefinito non è risolto, viene utilizzato il tipo enum come valore predefinito.
Metodi istanza
Le istanze di EnumField hanno il seguente metodo:
- validate_default_element(value)
- Convalida l'elemento predefinito del campo Enum. I campi Enum consentono la risoluzione ritardata dei valori predefiniti quando il tipo di campo non è stato risolto. Il valore predefinito di un campo può essere una stringa o un numero intero. Se il tipo Enum del campo è stato risolto, il valore predefinito viene convalidato in base a quel tipo.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-11 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-11 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eEnumField\u003c/code\u003e class defines fields for enum values, supporting delayed default value resolution to handle circular references.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eEnumField\u003c/code\u003e is constructed using the enum type, field number, and optional arguments like \u003ccode\u003erequired\u003c/code\u003e, \u003ccode\u003erepeated\u003c/code\u003e, \u003ccode\u003evariant\u003c/code\u003e, and \u003ccode\u003edefault\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003etype()\u003c/code\u003e property returns the Enum type associated with the field, while \u003ccode\u003edefault()\u003c/code\u003e provides the default enum value, or the enum type if the value is unresolved.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003evalidate_default_element(value)\u003c/code\u003e is used to validate the default value, supporting strings or integers, against the resolved Enum type.\u003c/p\u003e\n"],["\u003cp\u003eThe default value for an \u003ccode\u003eEnumField\u003c/code\u003e can be validated at the time it is accessed, and it is provided by the \u003ccode\u003eprotorpc.messages\u003c/code\u003e module.\u003c/p\u003e\n"]]],[],null,[]]