EnumField クラス

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')

EnumFieldprotorpc.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 型が解決されている場合、その型に基づいてデフォルト値が検証されます。