MessageField 類別

MessageField 類別用於定義訊息,以便提高整個網路或程序空間中的傳輸效率。訊息可使用欄位類別加以定義。

MessageField 是由 protorpc.messages 模組提供。

建構函式

MessageField 類別的建構函式定義如下:

class MessageField(message_type, number, [required=False | repeated=False])

定義子訊息值的欄位。

引數
message_type
欄位的訊息類型。必須為 Message 的子類別。
number
欄位的號碼。每種訊息類別的欄位號碼皆必須與其他類別不同。
required=False
這個欄位是否為必填欄位。與 repeated 引數互斥;若使用 repeated=True 就不會指定 required=True
repeated=False
這個欄位是否為重複欄位。與 required 引數互斥;若使用 required=True 就不會指定 repeated=True

如果 message_type 無效,則會引發 FieldDefinitionError

類別屬性

MessageField 類別提供下列屬性:

type
用於這個欄位的值的 Python 類型。舉例來說,如果是 DateTimeFieldtype 則為 datetime.datetime。如果是使用者定義的 MessageFields,type 則為指定的 Message 類型。
message_type
用於序列化的基礎訊息類型。具體來說,這是您可在 Message 類別的執行個體上儲存的類型。舉例來說,如果是 DateTimeField,類型則會是 message_types.DateTimeMessage。如果是一般訊息欄位,則會是 protorpc 訊息子類別。例如:
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'>
本頁內容對您是否有任何幫助?請提供意見:

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

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