Class MessageField digunakan untuk menentukan pesan agar terjadi transmisi yang efisien di seluruh jaringan atau ruang proses. Pesan ditentukan menggunakan class kolom.
MessageField
disediakan oleh modul
protorpc.messages
.
Konstruktor
Konstruktor class MessageField didefinisikan sebagai berikut:
- class MessageField(message_type, number, [required=False | repeated=False])
-
Menentukan kolom untuk nilai sub-pesan.
Argumen- message_type
- Jenis pesan untuk kolom. Harus merupakan subclass dari Pesan.
- angka
- Jumlah kolom. Harus unik per class pesan.
- required=False
- Apakah kolom ini wajib diisi atau tidak. Tidak dapat muncul bersamaan dengan
argumen
repeated
; jangan tentukanrepeated=True
jika Anda menggunakanrequired=True
. - repeated=False
- Apakah kolom ini diulang atau tidak. Tidak dapat muncul bersamaan dengan
argumen
required
; jangan tentukanrequired=True
jika Anda menggunakanrepeated=True
.
Memicu FieldDefinitionError jika
message_type
tidak valid.
Properti Class
Class MessageField menyediakan properti berikut:
- jenis
- Jenis Python yang digunakan untuk nilai kolom ini. Misalnya, dalam kasus DateTimeField,
type
adalahdatetime.datetime
. Untuk MessageFields yang ditentukan pengguna,type
adalah jenis Pesan yang ditentukan. - message_type
- Jenis pesan dasar yang digunakan untuk serialisasi. Secara khusus, ini adalah jenis yang dapat Anda simpan pada instance class Message. Misalnya,
untuk DateTimeField,
jenisnya adalah
message_types.DateTimeMessage
. Untuk kolom pesan normal, kolom ini akan menjadi subclass pesan protorpc. Contoh:class Sub(messages.Message): x = messages.IntegerField(1) class M(messages.Message): sub = messages.MessageField(Sub, 1) dt = message_types.DateTimeField(2) print 'M.sub.type =', M.sub.type print 'M.sub.message_type =', M.sub.message_type print 'M.dt.type =', M.dt.type print 'M.dt.message_type =', M.dt.message_type === output === M.sub.type = <class '__main__.Sub> M.sub.message_type = <class '__main__.Sub'> M.dt.type = <type 'datetime.datetime'> M.dt.message_type = <class 'protorpc.message_types.DateTimeMessage'>