struct

Reportar um problema Ver código-fonte Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Um objeto genérico com campos.

Os campos de structs não podem ser reatribuídos depois que o struct é criado. Dois structs são iguais se tiverem os mesmos campos e se os valores de campo correspondentes forem iguais.

Membros

struct

struct struct(**kwargs)

Cria uma estrutura imutável usando os argumentos de palavra-chave como atributos. Ele é usado para agrupar vários valores. Exemplo:
s = struct(x = 2, y = 3)
return s.x + getattr(s, "y")  # returns 5

Parâmetros

Parâmetro Descrição
kwargs O padrão é {}
, dicionário de argumentos.

to_json

string struct.to_json()

Descontinuado. Essa API foi descontinuada e será removida em breve. Não dependa dele. Ele está desativado com ---incompatible_struct_has_no_methods. Use essa flag para verificar se o código é compatível com a remoção iminente.
Cria uma string JSON com base no parâmetro de estrutura. Esse método só funciona se todos os elementos de struct (recursivamente) forem strings, números inteiros, booleanos, outros structs, uma lista desses tipos ou um dicionário com chaves e valores de string desses tipos. Aspas e novas linhas em strings são escapadas. Exemplos:
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"}}}
.

Descontinuado: em vez disso, use json.encode(x) ou json.encode_indent(x), que funcionam para valores diferentes de structs e não poluem o namespace de campo do struct.

to_proto

string struct.to_proto()

Descontinuado. Essa API foi descontinuada e será removida em breve. Não dependa dele. Ele está desativado com ---incompatible_struct_has_no_methods. Use essa flag para verificar se o código é compatível com a remoção iminente.
Cria uma mensagem de texto com base no parâmetro de estrutura. Esse método só funciona se todos os elementos struct (recursivamente) forem strings, ints, booleanos, outros structs ou dicts ou listas desses tipos. Aspas e novas linhas em strings são escapadas. As chaves de estrutura são iteradas na ordem classificada. Exemplos:
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: use proto.encode_text(x).