파이썬 객체 인스턴스변수 get set 메소드

우리가 이전에 파이썬 객체는 함수등의 부품들을 하나로 모아놓고 이렇게 만들어놓은 객체는 외부에서 변하는것을 방지하고 꺼내서 사용할수있다는 장점이 있습니다.

이번시간은 객체가 외부로부터 영향을 받지 않고 사용할수 있는 인스턴스 변수와 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 을 통해서 이를 방지할수가 있는것입니다.

Leave a Comment