Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 객체의 필드로 딕셔너리 만드는 방법 — __dict__ 속성 활용하기

객체의 필드 값을 딕셔너리로 변환하는 방법

파이썬에서 객체의 인스턴스 변수(필드)를 딕셔너리 형태로 한 번에 확인하고 싶다면 __dict__ 속성을 사용하면 됩니다. 이 속성은 객체가 가지고 있는 모든 필드와 그 값을 {키: 값} 형태의 딕셔너리로 반환해 줍니다.

예제를 통해 살펴보겠습니다. 먼저 간단한 person 클래스를 정의합니다.

>>> class person:
    def __init__(self):
        self.name = 'foo'
        self.age = 20

    def show(self):
        print(self.name, self.age)

__dict__로 객체의 필드 확인하기

이제 위 클래스의 객체를 하나 생성하고, 해당 객체의 __dict__ 속성에 접근해 보겠습니다. 결과는 딕셔너리 객체로 출력됩니다.

>>> p = person()
>>> d = p.__dict__
>>> d
{'name': 'foo', 'age': 20}

출력 결과에서 볼 수 있듯이, 객체의 필드 이름(name, age)이 키(key)가 되고, 각 필드에 저장된 값('foo', 20)이 값(value)으로 매핑된 딕셔너리가 반환됩니다.

참고 사항

  • __dict__는 인스턴스 변수만 포함하며, 클래스 메서드나 클래스 변수는 기본적으로 포함되지 않습니다.
  • vars(obj) 내장 함수를 사용해도 동일한 결과를 얻을 수 있습니다. vars(p)p.__dict__와 같습니다.
  • 반환된 딕셔너리는 실제 객체의 내부 상태와 연결되어 있으므로, 이 딕셔너리의 값을 수정하면 원본 객체의 필드 값도 함께 변경됩니다.

이처럼 __dict__ 속성을 활용하면 객체의 내부 상태를 쉽게 조회하거나, JSON 직렬화 등 딕셔너리 형태의 데이터가 필요한 작업에 유용하게 활용할 수 있습니다.