본문 바로가기
ETC

[python] 클래스 변수와 __dict__

by dkswnkk 2021. 12. 14.

파이썬에서 __dict__ 속성을 이용하면 클래스의 인스턴스 변수와 값에 쉽게 접근할 수 있다.

class publicCircle:
def __init__(self, name, radius):
self.name = name
self.radius = radius
c1 = publicCircle('private', 1)
print("c1의 속성들: " , c1.__dict__)
# __dict__[key] 형식으로 value값만 따로 얻을 수도 있다.
print(c1.__dict__['name'])
print(c1.__dict__['radius'])

 

위 코드의 결과는 아래와 같다.

c1의 속성들: {'name': 'private', 'radius': 1}
private
1

 

또한 __dict__속성을 사용하면 _(언더스코어)로 시작하는 이름을 가진 인스턴스 변수에도 쉽게 접근할 수 있는데, private 한 클래스 인스턴스에도 접근을 할 수 있게 된다.

class privateCircle:
def __init__(self, name, radius):
self.__name = name
self.__radius = radius
c2 = privateCircle('private', 2)
print("c2의 속성들: ", c2.__dict__)
# private한 인스턴스값의 value값만 따로 얻고 싶을 경우 아래와 같은 형식으로 얻어 올 수 있다.
print(c2.__dict__['_privateCircle__name'])
print(c2.__dict__['_privateCircle__radius'])

 

위 코드의 결과는 아래와 같다.

c2의 속성들: {'_privateCircle__name': 'private', '_privateCircle__radius': 2}
private
2

GitHub

LinkedIn

GitHub

LinkedIn