우리가 이전에 파이썬 객체는 함수등의 부품들을 하나로 모아놓고 이렇게 만들어놓은 객체는 외부에서 변하는것을 방지하고 꺼내서 사용할수있다는 장점이 있습니다.
이번시간은 객체가 외부로부터 영향을 받지 않고 사용할수 있는 인스턴스 변수와 get, set 의 속성에 대해서 살펴보고자 합니다.
1.인스턴스 변수
객체와 변수의 속성 예제로 클래스 class C(object):, 함수 def init(self, v):, 인스턴스 변수 self.value = v 이며 def getValue(self): 함수를 c1 = C(10), c1.getValue() 실행할때 인스턴스 변수 10이 출력됩니다.


2.get/set 메소드 사용
파이썬은 외부에서 호출하는것을 허용하지만 이것을 방지하기 위해서 set/get 메소드를 이용하여 호출을 방지할수가 있습니다.
아래의 예제를 살펴보면 def setV1(self, v): 함수는 에러를 방지하기위해 set 을 사용하며, if isinstance(v, int): 는 값의 유효성을 검사합니다.
c1.setV1(‘Hello’) 를 출력하면 문자열로 출력이 되지 않습니다. 이전의 함수는 출력이 되지만 setV1 은 외부로부터의 영향을 받지 않고 값이 유효한지를 검사할수가 있습니다.


3.인스턴스 변수 속성
파이썬은 인스턴스 변수에 직접 접근하는것이 가능하므로, 이것을 방지하기 위해 set/get 를 사용하였지만 이러한 메소드를 사용하지 않고도 속성을 이용하여 접근을 방지할수가 있습니다.
예제를 보면 self.__value = v 이며, self.__value 로, 출력을 하기위해서 c1 = C(10), c1.show() 를 실행하면 숫자 10이 출력이 되는것을 확인할수가 있습니다.
인스턴스 변수 속성값인 ‘__value’ 를 이용해서 외부에서 접근하는것을 방지하고 변수가 출력이 되는것을 확인할수가 있습니다.


지금까지 파이썬 객체 인스턴스 변수와 get set 메소드 사용방법에 대해서 살펴보았습니다. 이처럼 파이썬 객체는 기본적으로 외부에서 접근하는것을 허용하지만 get/set 또는 속성 __value 을 통해서 이를 방지할수가 있는것입니다.