Class MessageField

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 tentukan repeated=True jika Anda menggunakan required=True.
repeated=False
Apakah kolom ini diulang atau tidak. Tidak dapat muncul bersamaan dengan argumen required; jangan tentukan required=True jika Anda menggunakan repeated=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 adalah datetime.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'>