CODEDRAGON ㆍDevelopment/Python
Python 접근 제한자 (Access Modifier)
· Python은 다른 언어에서 흔히 사용하는 public, protected, private 등의 접근 제한자 (Access Modifier)를 갖지 않습니다.
· Python 클래스는 기본적으로 모든 멤버가 public 이 됩니다.
· Python 코딩 관례(Convention)상 내부적으로만 사용하는 변수 혹은 메서드는 그 이름 앞에 하나의 밑줄 하나(_) 을 붙입니다. 하지만 이는 코딩 관례에 따른 것일 뿐 실제 밑줄 하나를 사용한 멤버도 public 이므로 필요하면 외부에서 엑세스할 수 있습니다.
· 특정 변수명이나 메서드를 private으로 만들어야 한다면 두개의 밑줄(__)을 이름 앞에 붙이면 됩니다.
def __init__(self, width, height): self.width = width self.height = height
# private 변수 __size self.__size = width * height
# private 메서드 def __internalFunc(self): pass |
구분 |
선언 |
설명 |
self.width |
- |
· public · 외부에서 접근 가능 |
self._width |
밑줄 하나(_) |
· public · 내부 사용 용도로 표시 (protected) · 외부에서 접근 가능 |
self.__width |
두개의 밑줄(__) |
· private · 외부에서 접근 불가능 · 외부접근시 AttributeError 발생 |
private 멤버를 외부에서 접근할 경우 Error가 발생합니다.
AttributeError: 'Xxxxxx' object has no attribute '__xxxxx' |
'Development > Python' 카테고리의 다른 글
반복자 객체 (0) | 2020.02.18 |
---|---|
추상클래스(abstract class) 형식 (0) | 2020.02.17 |
파이썬에서 객체의 attribute를 탐색하는 단계 (0) | 2020.02.17 |
클래스 변수(class variable), 인스턴스 변수(instance variable) (0) | 2020.02.17 |
이름 공간 검색 순서 (0) | 2020.02.17 |