Python 2.7 telah mencapai akhir dukungan
dan akan
dihentikan penggunaannya
pada 31 Januari 2026. Setelah penghentian penggunaan, Anda tidak akan dapat men-deploy aplikasi Python 2.7, meskipun organisasi Anda sebelumnya menggunakan kebijakan organisasi untuk mengaktifkan kembali deployment runtime lama. Aplikasi Python 2.7 yang ada akan terus berjalan dan menerima traffic setelah
tanggal penghentiannya. Sebaiknya Anda
bermigrasi ke versi Python terbaru yang didukung.
Class EnumField
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
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.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-11 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-11 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eEnumField\u003c/code\u003e class defines fields for enum values, supporting delayed default value resolution to handle circular references.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eEnumField\u003c/code\u003e is constructed using the enum type, field number, and optional arguments like \u003ccode\u003erequired\u003c/code\u003e, \u003ccode\u003erepeated\u003c/code\u003e, \u003ccode\u003evariant\u003c/code\u003e, and \u003ccode\u003edefault\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003etype()\u003c/code\u003e property returns the Enum type associated with the field, while \u003ccode\u003edefault()\u003c/code\u003e provides the default enum value, or the enum type if the value is unresolved.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003evalidate_default_element(value)\u003c/code\u003e is used to validate the default value, supporting strings or integers, against the resolved Enum type.\u003c/p\u003e\n"],["\u003cp\u003eThe default value for an \u003ccode\u003eEnumField\u003c/code\u003e can be validated at the time it is accessed, and it is provided by the \u003ccode\u003eprotorpc.messages\u003c/code\u003e module.\u003c/p\u003e\n"]]],[],null,["# The EnumField Class\n\nThe EnumField class provides definitions for enum values. Enum fields may have default values that are delayed until the associated enum type is resolved. This is necessary to support certain circular references. For example: \n\n```python\nfrom protorpc import messages\n\nclass Message1(messages.Message):\n\n class Color(messages.Enum):\n RED = 1\n GREEN = 2\n BLUE = 3\n\n # Validate this field's default value when default is accessed.\n animal = messages.EnumField('Message2.Animal', 1, default='HORSE')\n\nclass Message2(messages.Message):\n\n class Animal(messages.Enum):\n DOG = 1\n CAT = 2\n HORSE = 3\n\n # This fields default value will be validated right away since Color is\n # already fully resolved.\n color = messages.EnumField(Message1.Color, 1, default='RED')\n```\n\n`EnumField` is provided by the `protorpc.messages` module.\n\nConstructor\n-----------\n\nThe constructor of the EnumField class is defined as follows:\n\nclass EnumField(enum_type, number, required, repeated, variant, default)\n\n: Provides a field definition for Enum values.\n\n **Arguments**\n\n enum_type\n : The Enum type for a field. Must be a subclass of [Enum](/appengine/docs/legacy/standard/python/tools/protorpc/messages/enumclass).\n\n number\n : The number of the field. Must be unique per message class.\n\n required\n : Whether or not this field is required. Mutually exclusive with the `repeated` argument; do not specify `repeated` if you use `required`.\n\n repeated\n : Whether or not this field is repeated. Mutually exclusive with the `required` argument; do not specify `required` if you use `repeated`.\n\n variant\n : Further specifies the type of field. Some field types are further restrained based on the underlying wire format. Best practice is to use the default value, but developers can use this field to declare an integer field as a 32-bit integer vs. the default 64 bit.\n\n default\n : Default value to use for the field if it is not found in stream.\n\n Raises a [FieldDefinitionError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#FieldDefinitionError) when `enum_type` is invalid.\n\nClass Properties\n----------------\n\nThe EnumField class provides the following class properties:\n\ntype()\n: Enum type used for the field.\n\ndefault()\n: Default for the enum field. If the default value is unresolved, uses Enum [type](#type) as the default.\n\nInstance Methods\n----------------\n\nEnumField instances have the following method:\n\nvalidate_default_element(value)\n: Validates the default element of the Enum field. Enum fields allow for delayed resolution of default values when the type of the field has not been resolved. The default value of a field may be a string or an integer. If the Enum type of the field has been resolved, the default value is validated against that type."]]