Class EnumField

Class EnumField menyediakan definisi untuk nilai enum. Kolom Enum mungkin memiliki nilai default yang tertunda hingga jenis enum terkait diselesaikan. Hal ini diperlukan untuk mendukung referensi melingkar tertentu. Contoh:

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 disediakan oleh modul protorpc.messages.

Konstruktor

Konstruktor class EnumField didefinisikan sebagai berikut:

class EnumField(enum_type, number, required, repeated, variant, default)

Memberikan definisi kolom untuk nilai Enum.

Argumen
enum_type
Jenis Enum untuk kolom. Harus merupakan subclass Enum.
number
Nomor kolom. Harus unik per kelas pesan.
required
Apakah kolom ini wajib diisi atau tidak. Tidak dapat muncul bersamaan dengan argumen repeated; jangan tentukan repeated jika Anda menggunakan required.
repeated
Apakah kolom ini diulang atau tidak. Tidak dapat muncul bersamaan dengan argumen required; jangan tentukan required jika Anda menggunakan repeated.
variant
Menentukan lebih lanjut jenis kolomnya. Beberapa jenis kolom lebih dibatasi berdasarkan format kabel yang mendasarinya. Praktik terbaik adalah menggunakan nilai default, tetapi developer dapat menggunakan kolom ini untuk mendeklarasikan kolom bilangan bulat sebagai bilangan bulat 32-bit vs. 64 bit default.
default
Nilai default yang akan digunakan untuk kolom ini jika tidak ditemukan di aliran data.

Memicu FieldDefinitionError saat enum_type tidak valid.

Properti Class

Class EnumField menyediakan properti class berikut:

type()
Jenis enum yang digunakan untuk kolom.
default()
Default untuk kolom enum. Jika nilai default tidak terselesaikan, gunakan type Enum sebagai default.

Metode Instance

Instance EnumField memiliki metode berikut:

validate_default_element(nilai)
Memvalidasi elemen default kolom Enum. Kolom Enum memungkinkan resolusi nilai default yang tertunda jika jenis kolom belum diselesaikan. Nilai default kolom dapat berupa string atau bilangan bulat. Jika jenis kolom Enum telah diselesaikan, nilai default akan divalidasi terhadap jenis tersebut.