ETC
[python] 클래스 변수와 __dict__
안주형
2021. 12. 14. 04:04
파이썬에서 __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