NERD WORLD

Python, Encapsulation 본문

토막지식

Python, Encapsulation

학부생7년차 2016. 6. 16. 11:53
"객체지향의 사실과 오해" 라는 책을 읽고 있다. 

중요한 내용 중 하나가 Encapsulation이다. InterfaceImplementation을 엄격히 분리하는것이, 객체지향적인 설계를 돕고, Encapsulation이 분리를 가능하게 한다.

그러나 Python에서는 C++이나 Java와 달리, public/private의 개념이 없기에 의아했다. 그래서 찾아보니, 아래 아티클이 이를 아주 명쾌하게 설명해주고 있다.


'토막지식' 카테고리의 다른 글

Authentication과 Authorization  (0) 2016.07.01
AWS EC2에 보유중인 도메인 지정하기  (0) 2016.06.17
Python, Encapsulation  (2) 2016.06.16
SSL/TLS  (0) 2016.04.29
NAT와 포트-포워딩(Port-Forwarding)  (1) 2016.04.22
공인 IP와 사설 IP  (0) 2016.04.22
2 Comments
  • hmm 2016.08.23 15:06 redCup._Cup__content = "tea"
    로 private member에 접근된다면 결국 public member 아닌가.... 생각이 드는데요.
    어떻게 생각하십니까?
  • 학부생7년차 2016.08.23 17:36 신고 맞는 말씀이십니다!

    저도 처음 이 포스트를 작성하는 시점에는 "아 Python에서는 access identifier가 정확하게 작동하지는 않고, 다만 개발자들 사이에서 암묵적인 의미로 underscore가 쓰이는구나...." 하고 넘어갔었습니다.

    그러나 최근에 DRF(Django REST Framework)를 사용하다가 제가 원하는 기능의 구현을 위해 내부 코드를 들여다보던 와중에 @property 장식자를 이해할 일이 생겼었죠. 그래서 @property와 setter/getter 개념을 이해하고나서는 Python에서도 redCup._Cup__content 같은 private member의 접근을 방지할 수 있다는 걸 알게 되었습니다.

    덕분에 제가 예전에 작성한 포스트의 오류를 알게되었습니다. 감사드립니다.
댓글쓰기 폼