[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 멤버에 접근합니다.

결론

파이썬에서는 명시적인 접근 제한자 지정이 없지만, 관례를 따라 멤버의 가시성을 제한할 수 있습니다. 개발자는 이러한 관례를 이해하고 적절히 활용하여 클래스 내부 멤버에 접근의 안전성을 유지할 수 있습니다.

참고 자료