La clase Field
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
La clase Field es la clase básica para todos los campos definidos en mensajes. Los desarrolladores no pueden ampliar esta clase.
El módulo protorpc.messages
proporciona Field
.
Constructor
El constructor de la clase Field se define de la siguiente manera:
- clase Campo (message_type, número, [obligatorio=Falso | repetido=Falso], variante=Ninguna, predeterminado=Ninguna)
-
Inicializa una instancia de Field. Cada subclase de Field se debe definir de esta forma:
VARIANTS
- Conjunto de tipos de variantes que acepte ese campo.
DEFAULT_VARIANT
- Tipo de variante predeterminada si no se especifica en el constructor.
Argumentos
- number
- Número del campo. Debe ser único por cada clase de mensaje.
- required=False
- Si el campo es obligatorio o no. Es mutuamente exclusivo con el argumento
repeated
; no especifiques repeated
si usas required
.
- repeated=False
- Si el campo se repite o no. Es mutuamente exclusivo con el argumento
required
; no especifiques required=True
si usas repeated=True
.
- variant=None
- Proporciona información de codificación adicional que usan principalmente los búferes de protocolo. Estas variantes se asignan a los valores de tipo en
descriptor.proto
. La práctica recomendada es usar valores predeterminados, pero puedes especificar valores como 32 bits, 64 bits, sin firmar, etcétera.
- default=None
- No se encontró el valor predeterminado del campo en la solicitud subyacente.
Nota: No se permiten valores predeterminados para los mensajes o campos repetidos.
Se generan las excepciones siguientes:
Propiedad de clase
La clase FieldList tiene una propiedad:
- predeterminada()
- El valor predeterminado para el campo.
Métodos de instancia
Las instancias de FieldList tienen los métodos siguientes:
- validate(value)
- Valida un valor asignado a un campo.
Argumentos
- value
- El valor que se evaluará.
Genera un ValidationError si el valor no es un tipo esperado.
- validate_default_element(value)
-
Valida un valor asignado a un campo predeterminado. Específico para un solo elemento.
Algunos campos pueden permitir una resolución retrasada de tipos predeterminados necesarios en caso de referencias de definición circular. En este caso, el valor predeterminado podría ser un marcador de posición que se resuelve cuando es necesario después de que se definan las clases de mensaje.
Argumentos- value
- Valor predeterminado que se debe validar.
Genera un ValidationError si el valor no es un tipo esperado.
- validate_default(value)
-
Valida un valor predeterminado del campo.
Argumentos- value
- Valor predeterminado que se debe validar.
Genera un ValidationError si el valor no es un tipo esperado.
- message_definition()
-
Obtiene una definición de mensaje que contiene esta definición de Field. Muestra una definición para el objeto Mensaje que contiene el Field. Devuelve None si Field está definido fuera de una clase de mensaje.
Genera un ValidationError si el valor no es un tipo esperado.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-04 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-04 (UTC)"],[[["\u003cp\u003eThe \u003ccode\u003eField\u003c/code\u003e class serves as the foundation for all fields within messages and cannot be extended by developers, and is provided by the \u003ccode\u003eprotorpc.messages\u003c/code\u003e module.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eField\u003c/code\u003e constructor takes parameters like \u003ccode\u003enumber\u003c/code\u003e, \u003ccode\u003erequired\u003c/code\u003e, \u003ccode\u003erepeated\u003c/code\u003e, \u003ccode\u003evariant\u003c/code\u003e, and \u003ccode\u003edefault\u003c/code\u003e to define field properties, and raises exceptions for invalid inputs, such as an invalid default, or mutually exclusive arguments.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eField\u003c/code\u003e class contains \u003ccode\u003eVARIANTS\u003c/code\u003e and \u003ccode\u003eDEFAULT_VARIANT\u003c/code\u003e properties that define the field's acceptable variant types, and its default variant type respectively.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eField\u003c/code\u003e instance methods include \u003ccode\u003evalidate\u003c/code\u003e, \u003ccode\u003evalidate_default_element\u003c/code\u003e, \u003ccode\u003evalidate_default\u003c/code\u003e to check values against expectations, and \u003ccode\u003emessage_definition\u003c/code\u003e to find the \u003ccode\u003eMessage\u003c/code\u003e that contains the Field.\u003c/p\u003e\n"],["\u003cp\u003eDefault values for Fields are not permitted for repeated fields or message fields, as specified by the argument \u003ccode\u003edefault=None\u003c/code\u003e in the constructor.\u003c/p\u003e\n"]]],[],null,["# The Field Class\n\nThe Field class is the base class for all fields defined on messages. This class cannot be extended by developers.\n\n`Field` is provided by the `protorpc.messages` module.\n\nConstructor\n-----------\n\nThe constructor of the Field class is defined as follows:\n\nclass\nField\n(message_type,\nnumber,\n\\[required=False \\| repeated=False\\], variant=None, default=None)\n\n: Initializes an Field instance. Each sub-class of Field must define the following:\n\n `VARIANTS`\n : Set of variant types accepted by that field.\n\n `DEFAULT_VARIANT`\n : Default variant type if not specified in constructor.\n **Arguments**\n\n number\n : Number of the field. Must be unique per message class.\n\n required=False\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=False\n : Whether or not this field is repeated. Mutually exclusive with the `required` argument; do not specify `required=True` if you also use `repeated=True`.\n\n variant=None\n : Provides additional encoding information that is mainly used by protocol buffers. These variants map to the Type values in `descriptor.proto`. Best practice is to use default values, but you can specify values as 32-bit, 64-bit, unsigned, etc.\n\n default=None\n\n : Default value for the field if not found in the underlying request. **Note:** Default values are not permitted for repeated fields or message fields.\n\n Raises the following exceptions:\n\n - [InvalidVariantError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#InvalidVariantError) when invalid variant for field is provided.\n - [InvalidDefaultError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#InvalidDefaultError) when invalid default for field is provided.\n - [FieldDefinitionError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#FieldDefinitionError) when invalid number provided or mutually exclusive fields are used.\n - [InvalidNumberError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#InvalidNumberError) when the field number is out of range or reserved.\n\nClass Property\n--------------\n\nThe FieldList class has one property:\n\ndefault()\n: The default value for the field.\n\nInstance Methods\n----------------\n\nFieldList instances have the following methods:\n\nvalidate(value)\n: Validates a value assigned to a field.\n **Arguments**\n\n value\n : The value to evaluate.\n\n Raises a [ValidationError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#ValidationError) if the value is not an expected type.\n\nvalidate_default_element(value)\n\n: Validates a value assigned to a default field. Specific to a single element.\n\n Some fields may allow for delayed resolution of default types necessary in the case of circular definition references. In this case, the default value might be a placeholder that is resolved when needed after all the message classes are defined.\n **Arguments**\n\n value\n : Default value to validate.\n\n Raises a [ValidationError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#ValidationError) if the value is not an expected type.\n\nvalidate_default(value)\n\n: Validates that a field's default value.\n\n **Arguments**\n\n value\n : Default value to validate.\n\n Raises a [ValidationError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#ValidationError) if the value is not an expected type.\n\nmessage_definition()\n\n: Gets a message definition that contains this Field definition. Returns a definition for the [Message](/appengine/docs/legacy/standard/python/tools/protorpc/messages/messageclass) object that contains the Field. Returns None if Field is defined outside of a message class.\n\n Raises a [ValidationError](/appengine/docs/legacy/standard/python/tools/protorpc/messages/exceptions#ValidationError) if the value is not an expected type."]]