struct

Informar un problema Ver fuente

Un objeto genérico con campos.

Los campos de struct no se pueden reasignar una vez que se crea el struct. Dos structs son iguales si tienen los mismos campos y si los valores de campo correspondientes son iguales.

Miembros

struct

struct struct(**kwargs)

Crea un struct inmutable con los argumentos de palabras clave como atributos. Se usa para agrupar varios valores. Ejemplo:
s = struct(x = 2, y = 3)
return s.x + getattr(s, "y")  # returns 5

Parámetros

Parámetro Descripción
kwargs la configuración predeterminada es {}
Diccionario de argumentos.

to_json

string struct.to_json()

Obsoleto.. Esta API dejó de estar disponible y se quitará pronto. No dependa de él. Está inhabilitada con ---incompatible_struct_has_no_methods. Usa esta función experimental para verificar que tu código sea compatible con su eliminación inminente.
Crea una string JSON a partir del parámetro struct. Este método solo funciona si todos los elementos struct (de forma recurrente) son cadenas, ints, booleanos, otros structs, una lista de estos tipos o un diccionario con claves de cadenas y valores de estos tipos. Las comillas y las líneas nuevas en las cadenas tienen escape. Ejemplos:
struct(key=123).to_json()
# {"key":123}

struct(key=True).to_json()
# {"key":true}

struct(key=[1, 2, 3]).to_json()
# {"key":[1,2,3]}

struct(key='text').to_json()
# {"key":"text"}

struct(key=struct(inner_key='text')).to_json()
# {"key":{"inner_key":"text"}}

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
# {"key":[{"inner_key":1},{"inner_key":2}]}

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
# {"key":{"inner_key":{"inner_inner_key":"text"}}}
.

Obsoleto: En su lugar, usa json.encode(x) o json.encode_indent(x), que funcionan para valores distintos de structs y no contaminan el espacio de nombres del campo de struct.

to_proto

string struct.to_proto()

Obsoleto.. Esta API dejó de estar disponible y se quitará pronto. No dependa de él. Está inhabilitada con ---incompatible_struct_has_no_methods. Usa esta función experimental para verificar que tu código sea compatible con su eliminación inminente.
Crea un mensaje de texto a partir del parámetro struct. Este método solo funciona si todos los elementos struct (de forma recurrente) son cadenas, ints, booleanos, otros structs o dicts, o listas de estos tipos. Las comillas y las líneas nuevas en las cadenas tienen escape. Las claves de struct se iteran en el orden de clasificación. Ejemplos:
struct(key=123).to_proto()
# key: 123

struct(key=True).to_proto()
# key: true

struct(key=[1, 2, 3]).to_proto()
# key: 1
# key: 2
# key: 3

struct(key='text').to_proto()
# key: "text"

struct(key=struct(inner_key='text')).to_proto()
# key {
#   inner_key: "text"
# }

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
# key {
#   inner_key: 1
# }
# key {
#   inner_key: 2
# }

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
# key {
#    inner_key {
#     inner_inner_key: "text"
#   }
# }

struct(foo={4: 3, 2: 1}).to_proto()
# foo: {
#   key: 4
#   value: 3
# }
# foo: {
#   key: 2
#   value: 1
# }

Obsoleto: usa proto.encode_text(x) en su lugar.