EnumField 類別

EnumField 類別為列舉值提供定義。列舉欄位的預設值可能會延遲到關聯的列舉類型完成解析後才會解析,這對某些特定的循環參照而言是必須的。例如:

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 的子類別。
number
欄位的數目,每種訊息類別的欄位號碼皆必須與其他類別不同。
required
這個欄位是否為必填欄位。與 repeated 引數互斥;使用 required 就不會指定 repeated
repeated
這個欄位是否為重複欄位。與 required 引數互斥;使用 repeated 就不會指定 required
variant
進一步指定欄位類型。有些欄位類型由於基本傳輸格式而無法進一步指定。最佳做法是使用預設值,但是開發人員可以使用這個欄位來宣告整數欄位是 32 位元整數,而預設的是 64 位元。
default
在資料流中找不到預設值時,欄位使用的預設值。

如果 enum_type 無效,則會引發 FieldDefinitionError

類別屬性

EnumField 類別提供下列類別屬性:

type()
欄位使用的列舉類型。
default()
列舉欄位的預設值。如果系統無法解析預設值,會使用 Enum 類型做為預設值。

例項方法

EnumField 例項有下列方法:

validate_default_element(value)
驗證 Enum 欄位的預設元素。當系統尚未解析某個欄位類型時,列舉欄位允許延後解析預設值的時間。欄位的預設值可能是字串或整數。如果系統已解析欄位的 Enum 類型,就會依據該類型驗證預設值。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Python 2 適用的 App Engine 標準環境