Using TypedDict with invalid attribute names

Alex O'Callaghan

유효하지 않은 속성 이름으로 TypedDict 사용하기

원문은 Alex O'Callaghan님이 에 게재했습니다. 이 블로그 구독하기

이전에 TypedDict 값에 제네릭 타입을 사용하는 방법을 다룬 적이 있지만, TypedDict를 사용할 때 마주할 수 있는 또 다른 문제는 키 이름이 유효한 식별자가 아닌 경우다. 파이썬에서 식별자(또는 이름)는 포함할 수 있는 문자가 제한되어 있다(일반적으로 대문자와 소문자 A부터 Z까지, 밑줄 _ 그리고 숫자 0부터 9까지).

일반적으로 TypedDict는 클래스를 정의해 사용한다:

from typing import TypedDict

class Book(TypedDict):
  id: int
  name: str

book: Book = {"id": 123, "name": "To Kill A Mockingbird"}

하지만 키 중 하나라도 유효한 식별자가 아닌 경우 — 예를 들어 마침표 .나 하이픈 -을 포함하고 있다면 — 이 구문은 동작하지 않는다:

from typing import TypedDict

class Book(TypedDict):
  id: int
  name: str
  some-hyphen-field: str
  field.dot: str

이런 경우에는 함수형 구문을 사용할 수 있다:

from typing import TypedDict

Book = TypedDict(
  'Book',
  {
    "id": int,
    "name": str,
    "some-hyphen-field": str,
    "field.dot": str
  }
)

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글