Field 类

Field 类是为消息定义的所有字段的基类。开发者无法扩展此类。

Fieldprotorpc.messages 模块提供。

构造函数

Field 类的构造函数定义如下:

class  Field (message_type, number, [required=False | repeated=False], variant=None, default=None)

初始化一个 Field 实例。Field 的每个子类都必须定义以下内容:

VARIANTS
该字段接收的变体类型集。
DEFAULT_VARIANT
构造函数中未指定变体类型时使用的默认变体类型。
参数
number
字段的编号。每个消息类的编号必须是唯一的。
required=False
此字段是否为必需项。与 repeated 参数相互排斥;如果使用 required,请勿指定 repeated
repeated=False
此字段是否重复。与 required 参数相互排斥;如果使用了 repeated=True,请勿指定 required=True
variant=None
提供主要供协议缓冲区使用的其他编码信息。这些变体将映射到 descriptor.proto 中的类型值。最佳做法是使用默认值,但您可以将值指定为 32 位值、64 位值、无符号值等等。
default=None
如果在基本请求中未发现用于字段的值,则使用此默认值。

注意:重复字段或消息字段不允许使用默认值。

可能引发的异常如下:

类属性

FieldList 类具有一个属性:

default()
字段的默认值。

实例方法

FieldList 实例具有以下方法:

validate(value)
验证分配给字段的值。 参数
value
要评估的值。

如果值并非预期类型,则抛出 ValidationError

validate_default_element(value)

验证分配给默认字段的值。特定于单个元素。

在必须使用循环定义引用时,有些字段可能允许延迟解析默认类型。在这种情况下,默认值可能是在定义了所有消息类之后,必要时予以解析的占位符。

参数
value
要验证的默认值。

如果值并非预期类型,则抛出 ValidationError

validate_default(value)

验证某个字段的默认值。

参数
value
要验证的默认值。

如果值并非预期类型,则抛出 ValidationError

message_definition()

获取包含该字段定义的消息定义。返回包含该字段的 Message 对象的定义。如果字段是在消息类以外的位置定义的,则返回 None。

如果值并非预期类型,则抛出 ValidationError