필드가 있는 일반 객체입니다.
구조체가 생성된 후에는 구조체 필드를 재할당할 수 없습니다. 두 구조체에 동일한 필드가 있고 상응하는 필드 값이 같으면 두 구조체가 동일합니다.
회원
구조체
struct struct(**kwargs)
s = struct(x = 2, y = 3) return s.x + getattr(s, "y") # returns 5
매개변수
매개변수 | 설명 |
---|---|
kwargs
|
기본값은 {} 입니다.인수의 사전입니다. |
to_json
string struct.to_json()
---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()
---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)를 사용하세요.