데이터 숨기기
Python에서는 속성 이름 앞에 이중 밑줄을 사용하여 액세스할 수 없거나 비공개로 만들거나 숨깁니다.
다음 코드는 __hiddenVar 변수를 숨기는 방법을 보여줍니다.
예시
class MyClass: __hiddenVar = 0 def add(self, increment): self.__hiddenVar += increment print (self.__hiddenVar) myObject = MyClass() myObject.add(3) myObject.add (8) print (myObject.__hiddenVar)
출력
3 Traceback (most recent call last): 11 File "C:/Users/TutorialsPoint1/~_1.py", line 12, in <module> print (myObject.__hiddenVar) AttributeError: MyClass instance has no attribute '__hiddenVar'
위의 프로그램에서 우리는 object를 사용하여 클래스 외부의 숨겨진 변수에 접근을 시도했고 예외를 던졌습니다.
다음과 같은 특수 구문을 사용하여 숨겨진 속성 값에 액세스할 수 있습니다. -
예시
class MyClass: __hiddenVar = 12 def add(self, increment): self.__hiddenVar += increment print (self.__hiddenVar) myObject = MyClass() myObject.add(3) myObject.add (8) print (myObject._MyClass__hiddenVar)
출력
15 23 23
private 메서드는 클래스 외부에서 액세스할 수 있지만 일반적인 경우만큼 쉽지는 않습니다. 파이썬의 어떤 것도 진정으로 사적인 것이 아닙니다. 내부적으로 private 메소드와 속성의 이름은 주어진 이름으로 액세스할 수 없도록 즉시 변경 및 해제됩니다.