구조체

문제 신고 소스 보기 Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

필드가 있는 일반 객체입니다.

구조체가 생성된 후에는 구조체 필드를 재할당할 수 없습니다. 두 구조체에 동일한 필드가 있고 상응하는 필드 값이 같으면 두 구조체가 동일합니다.

회원

구조체

struct struct(**kwargs)

키워드 인수를 속성으로 사용하여 변경 불가능한 구조체를 만듭니다. 여러 값을 함께 그룹화하는 데 사용됩니다. 예:
s = struct(x = 2, y = 3)
return s.x + getattr(s, "y")  # returns 5

매개변수

매개변수 설명
kwargs 기본값은 {}입니다.
인수의 사전입니다.

to_json

string struct.to_json()

지원 중단되었습니다. 이 API는 지원 중단되었으며 곧 삭제됩니다. 이 방법을 사용하지 마세요. ---incompatible_struct_has_no_methods를 사용하면 사용 중지됩니다. 이 플래그를 사용하여 코드가 예정된 삭제와 호환되는지 확인합니다.
구조체 매개변수에서 JSON 문자열을 만듭니다. 이 메서드는 모든 구조체 요소가 (재귀적으로) 문자열, 정수, 불리언, 다른 구조체, 이러한 유형의 목록 또는 이러한 유형의 문자열 키와 값이 있는 사전인 경우에만 작동합니다. 문자열의 따옴표와 새 줄은 이스케이프 처리됩니다. 예:
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"}}}
.

지원 중단됨: 대신 json.encode(x) 또는 json.encode_indent(x)를 사용하세요. 이 함수는 구조체 이외의 값에 작동하며 구조체 필드 네임스페이스를 오염시키지 않습니다.

to_proto

string struct.to_proto()

지원 중단되었습니다. 이 API는 지원 중단되었으며 곧 삭제됩니다. 이 방법을 사용하지 마세요. ---incompatible_struct_has_no_methods를 사용하면 사용 중지됩니다. 이 플래그를 사용하여 코드가 예정된 삭제와 호환되는지 확인합니다.
구조체 매개변수에서 텍스트 메시지를 만듭니다. 이 메서드는 모든 구조체 요소가 (재귀적으로) 문자열, 정수, 불리언, 다른 구조체 또는 이러한 유형의 사전 또는 목록인 경우에만 작동합니다. 문자열의 따옴표와 줄바꿈은 이스케이프 처리됩니다. 구조체 키는 정렬된 순서로 반복됩니다. 예를 들면 다음과 같습니다.
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
# }

지원 중단됨: 대신 proto.encode_text(x)를 사용하세요.