2011年7月1日金曜日

13.Enum types

orderフィールドは、enumフィールドを使用します。

enumは、フィールドの値を特定の値だけ許可し、それ以外の値を禁止したい場合に使用します。
この場合、enumは、サーバーがレスポンスを生成する際のデータの並び順を指定します。

enumを定義したい場合は、Enumクラスのサブクラスを作成します。
それぞれのenumのメンバには、enum型ごとに一意の数値が割り当てられます。
その数値は、enum型のインスタンスになるほか、クラス変数としてクラスからアクセスすることも可能です。

print 'Enum value Order.%s has number %d' % (Order.WHEN.name,
                                             Order.WHEN.number)

enum型のインスタンスには特別の性質があり、
上記のように「name」や「number」というメンバを使わなくても、自動的に文字列や数値に変換されます。
print 'Enum value Order.%s has number %d' % (Order.WHEN,
                                             Order.WHEN)
メッセージにenum型のフィールドを定義する場合、enum型を、最初のパラメータに指定してください。
enum型のフィールドも、デフォルト値を持つことができます。
order = messages.EnumField(Order, 3, default=Order.WHEN)

0 件のコメント:

コメントを投稿