Yapı alanları, yapı oluşturulduktan sonra yeniden atanamaz. İki struct, aynı alanlara sahiplerse ve karşılık gelen alan değerleri eşitse eşittir.
Üyeler
struct
struct struct(**kwargs)
s = struct(x = 2, y = 3) return s.x + getattr(s, "y") # returns 5
Parametreler
Parametre | Açıklama |
---|---|
kwargs
|
default = {} Bağımsız değişkenler sözlüğü. |
to_json
string struct.to_json()
---incompatible_struct_has_no_methods
ile devre dışı bırakıldı. Kodunuzun, kaldırılma olasılığı yüksek olan içerikle uyumlu olduğunu doğrulamak için bu işareti kullanın. struct parametresinden bir JSON dizesi oluşturur. Bu yöntem yalnızca tüm struct öğeleri (yinelemeli) dize, ints, boole, diğer struct, bu türlerin listesi veya bu türlerin dize anahtarları ve değerlerini içeren bir sözlük olduğunda çalışır. Dizelerdeki tırnak işaretleri ve yeni satırlar kod dışına alınır. Örnekler:
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"}}}
Kullanımdan kaldırıldı: Bunun yerine, struct'lar dışındaki değerler için çalışan ve struct alanı ad alanını kirletmeyen json.encode(x) veya json.encode_indent(x) yöntemini kullanın.
to_proto
string struct.to_proto()
---incompatible_struct_has_no_methods
ile devre dışı bırakıldı. Kodunuzun, kaldırılma olasılığı yüksek olan içerikle uyumlu olduğunu doğrulamak için bu işareti kullanın. struct parametresinden bir kısa mesaj oluşturur. Bu yöntem yalnızca tüm struct öğeleri (yinelemeli) dize, int, boole, diğer struct veya dikt ya da bu türlerin listeleriyse çalışır. Dizelerdeki tırnak işaretleri ve yeni satırlar kod dışına alınır. Yapı anahtarları, sıralı olarak yinelenir. Örnekler:
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 # }
Desteği sonlandırıldı: Bunun yerine proto.encode_text(x) işlevini kullanın.