앞선 글에서 이야기 했듯이, python에서의 private 변수는 강제로 변수를 클래스 이름까지 작성해가면서 수정하지 않는 한, 접근할 수 없다.
이 떄, 간편한 방법으로 나온 것이 get, set 메소드(getter, setter)를 활용하는 방법이다.
위처럼 get, set 메소드를 활용하면, "_example__y" 처럼 직접 작성하지는 않지만, 이 역시도 지양하는 방법이다.
어쨌든, 직접 인스턴스를 만들어 set 메소드를 통해 직접 지정해야하고,
수정하고 싶은 private 변수마다 get, set를 다 작성해야하므로 코드의 양이 방대하게 늘어나 가독성이 떨어질 수 있다.
이보다 더 간결하고, 가독성 높은 방법이 property 데코레이터를 사용하는 것이다.
getter, setter, deleter 부분의 메소드 이름이 전부 y로 설정되었지만
일반 속성와 같이 " a.y = 10 " 처럼 상황에 맞게 알아서 사용 가능한 것이 property의 기능이다.
이런 pythonic한 방식인 property를 사용하면, 변수에 제약을 설정할 수 있고, getter와 setter의 효과를 동등하게 한다는 장점이 있다.
또, 코드를 보다 직관적이고, 일관적이게 작성할 있게 해준다.
'Studying > Python' 카테고리의 다른 글
7. meta class(메타 클래스) (0) | 2022.03.03 |
---|---|
6. method overriding, method overloading(메소드 오버라이딩, 메소드 오버로딩) (0) | 2022.03.01 |
4. 접근 지정자(Access Modifier) (0) | 2022.02.27 |
3. Context manager (0) | 2022.02.19 |
2. Lambda, Map, Reduce, Filter (0) | 2022.02.14 |