-
[Python] 파이썬 접근지정자 강제 접근 방법 파이썬 네임맹글링Python/Python 2024. 7. 2. 18:11반응형
Python 에서는 다른 언어와 다르게 public/private/protected 같은 접근지정자가 따로 없다.
하지만 우리는 네임맹글링이라는 기법으로 고유한 방법으로 던더(__) 기법을 사용하여 private하게 접근지정자를 만들고들 한다.일반적으로 private한 변수를 가져오거나 값을 바꿀때에는 getter/setter 사용하여 클래스 내부에서 호출하여 변수를 보호한다. 그런데 파이썬에서 정말로 이러한 방법으로 완전하게 변수를 보호할 수 있을까?
결과는 아니다. 아래 코드처럼 클래스 자체를 네임맹글링 방식으로 호출하면 결국에는 변수에 접근이 가능하다.
class MyClass: def __init__(self): self.__secret_value = 1 self._atb = 2 obj = MyClass() print(obj._MyClass__secret_value)
사실 저렇게 선언이 가능하다고 해서 일반적으로 클래스 바깥에서 저런식으로 접근하지는 않다 그러나 그냥 접근이 가능하다고 알고만 있으면 된당
반응형'Python > Python' 카테고리의 다른 글
[Python] 싱글-디스패치 함수(single-dispatch function) (1) 2024.07.03 [Python] 디스크립터(Discriptor) (1) 2024.07.03 [Python] Pytest Fixtures에 대한 가이드 (1) 2024.07.02 [Python]: 다중상속과 메서드 결정 순서 MRO(Method Resolution Order) (0) 2024.06.27 [Python] 파이썬 개발모드 dev (0) 2024.06.25