[python] 클래스 멤버 접근 제한자
파이썬은 객체 지향 프로그래밍을 지원하는 언어이며, 클래스 멤버에 대한 접근 제한자를 명시적으로 정의하지 않습니다. 하지만, 개발자가 일반적으로 사용하는 관례에 따라 멤버의 가시성을 제한할 수 있습니다.
접근 제한자의 종류
1. Public 멤버
파이썬 클래스에서 어떠한 멤버도 기본적으로 public입니다. 이는 클래스 외부에서도 멤버에 접근할 수 있다는 의미입니다.
2. Private 멤버
파이썬에서 멤버 이름 앞에 언더바 두 개(__
)를 붙여서 private으로 표시합니다. 이는 해당 멤버가 클래스의 외부에서 직접 접근할 수 없도록 제한합니다.
3. Protected 멤버
파이썬에서는 멤버 이름 앞에 언더바 한 개(_
)를 붙여서 protected로 표시할 수 있습니다. 하지만, 실제로 접근이 제한되는 것은 아니며, 주로 관례적으로 사용됩니다.
예제
다음은 private 멤버를 가지는 예제 클래스입니다.
class MyClass:
def __init__(self):
self.__private_member = 10
def get_private_member(self):
return self.__private_member
obj = MyClass()
print(obj.get_private_member()) # 접근 가능
print(obj.__private_member) # 에러 발생
위 예제에서 __private_member
는 private으로 정의되어 있기 때문에 클래스 외부에서는 직접 접근할 수 없습니다. 따라서 get_private_member
메서드를 통해 private 멤버에 접근합니다.
결론
파이썬에서는 명시적인 접근 제한자 지정이 없지만, 관례를 따라 멤버의 가시성을 제한할 수 있습니다. 개발자는 이러한 관례를 이해하고 적절히 활용하여 클래스 내부 멤버에 접근의 안전성을 유지할 수 있습니다.
참고 자료
- Python Documentation: Classes