cấu trúc

Báo cáo sự cố Xem nguồn Hằng đêm · 7,4 của Google. 7.3 · 7,2 · 7.1 · 7 · 6,5

Đối tượng chung có các trường.

Bạn không thể chỉ định lại các trường cấu trúc sau khi tạo cấu trúc. Hai cấu trúc bằng nhau nếu có cùng các trường và nếu các giá trị trường tương ứng bằng nhau.

Hội viên

struct

struct struct(**kwargs)

Tạo một cấu trúc bất biến bằng cách sử dụng các đối số từ khoá làm thuộc tính. Phương diện này dùng để nhóm nhiều giá trị với nhau. Ví dụ:
s = struct(x = 2, y = 3)
return s.x + getattr(s, "y")  # returns 5

Thông số

Thông số Mô tả
kwargs giá trị mặc định là {}
Từ điển đối số.

to_json

string struct.to_json()

Không dùng nữa. API này không còn được dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào tính năng này. Tính năng này đã bị tắt với ---incompatible_struct_has_no_methods. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với yêu cầu sắp xoá.
Tạo một chuỗi JSON từ tham số cấu trúc. Phương thức này chỉ hiệu quả nếu tất cả các phần tử cấu trúc (theo đệ quy) là chuỗi, số nguyên, boolean, cấu trúc khác, danh sách các loại này hoặc từ điển có khoá chuỗi và giá trị thuộc các kiểu này. Các dấu ngoặc kép và các dòng mới trong chuỗi là ký tự thoát. Ví dụ:
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"}}}
.

Không dùng nữa: thay vào đó, hãy sử dụng json.encode(x) hoặc json.encode_indent(x). Tệp này phù hợp với các giá trị không phải cấu trúc và không gây ô nhiễm không gian tên của trường cấu trúc.

to_proto

string struct.to_proto()

Không dùng nữa. API này không được dùng nữa và sẽ sớm bị xoá. Vui lòng đừng phụ thuộc vào tính năng này. Tính năng này đã bị tắt với ---incompatible_struct_has_no_methods. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với yêu cầu sắp xoá.
Tạo tin nhắn văn bản từ tham số cấu trúc. Phương thức này chỉ hoạt động nếu tất cả các phần tử cấu trúc (recursion) đều là chuỗi, số nguyên, boolean, cấu trúc hoặc từ điển hoặc danh sách của các loại này. Dấu ngoặc kép và dòng mới trong chuỗi được thoát. Các khoá cấu trúc được lặp lại theo thứ tự đã sắp xếp. Ví dụ:
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
# }

Không dùng nữa: thay vào đó hãy sử dụng proto.encode_text(x).