짧은하루

python 접근제한자 (__, _ 언더 스코어 의미) 본문

Language/python

python 접근제한자 (__, _ 언더 스코어 의미)

짧은하루 2021. 8. 31. 16:50

python에서는 java 처럼 접근을 제한하는 접근제한자를 사용하지 않는다.

접근 제한자를 두기보다는 약속을 정하고 웬만하면 따를 것을 권장한다.

 

python에서 밑줄의 의미

밑줄 두 개(__)는 JAVA에서 private를 의미한다. 

밑줄 한 개(_)는 JAVA에서 protected를 의미한다.

하지만 실제 접근제한자로 작동하지는 않아서 함수/변수를 다른 곳에서 호출해도 문제가 발생하지 않는다.

다만, private/protected로 쓸 것을 권장할 뿐이다.

 

JAVA에서 private, protected 개념은 다음과 같다.

  • private 자기 자신 클래스 안에서만 사용 가능
  • protected 자기 자신 클래스와 상속된 클래스에서 사용 가능

코드 예시

class SampleCode:
    def __init__(self):
    	self._haha = 1
        
    def __mothod1(self):
    	pass
        
    def _mothod2(self):
    	pass
        
if __name__ == '__main__':
    # 객체 생성
    test = SampleCode()
    
    # 다음과 같이 사용해도 에러가 나지 않지만 protected와 private 처럼 쓸 것을 권장함
    test._haha = 2
    test.__mothod1()
    test._mothod2()
반응형
Comments