EnumField クラスは、列挙値の定義を提供します。Enum フィールドは、関連付けられた列挙型が解決されるまで遅延されるデフォルト値を持つことができます。これは特定の循環参照をサポートするために必要です。次に例を示します。
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
は protorpc.messages
モジュールによって提供されます。
コンストラクタ
EnumField クラスのコンストラクタは次のように定義されます:
- class EnumField(enum_type, number, required, repeated, variant, default)
-
Enum 値のフィールド定義を提供します。
引数- enum_type
- フィールドの Enum 型。Enum のサブクラスにする必要があります。
- number
- フィールドの番号。メッセージ クラスごとに一意でなければなりません。
- required
- このフィールドが必須かどうかを指定します。
repeated
引数と同時に指定することはできません。required
を使用する場合はrepeated
を指定しないでください。 - repeated
- このフィールドが反復フィールドかどうかを指定します。
required
引数と同時に指定することはできません。repeated
を使用する場合はrequired
を指定しないでください。 - variant
- フィールドの型を指定します。一部のフィールド型は、基になる送信形式に基づいて制約できます。デフォルト値の使用をおすすめしますが、このフィールドを使用してデフォルトの 64 ビットではなく 32 ビットの整数として整数フィールドを宣言することもできます。
- default
- ストリーム内にフィールドの値が見つからない場合に使用するデフォルト値。
enum_type
が無効な場合、FieldDefinitionError が発生します。
クラスのプロパティ
EnumField クラスには次のクラス プロパティがあります:
- type()
- フィールドに使用する列挙型。
- default()
- 列挙フィールドのデフォルト値です。デフォルト値が解決されない場合は、デフォルトとして Enum 型を使用します。
インスタンス メソッド
EnumField のインスタンスには次のメソッドがあります。
- validate_default_element(value)
- Enum フィールドのデフォルト要素を検証します。Enum フィールドでは、フィールドの型が解決されていない場合にデフォルト値の遅延解決が可能です。フィールドのデフォルト値は文字列または整数になります。フィールドの Enum 型が解決されている場合、その型に基づいてデフォルト値が検証されます。