Files
python-examples/doc/10_10_inner_class.md
2025-01-20 02:26:20 +09:00

1.7 KiB

내부 클래스

내부 클래스는 다른 클래스 내부에 정의되는 클래스를 의미합니다. 마치 함수가 다른 함수 내부에 정의될 수 있듯이, 클래스도 다른 클래스 내부에 정의될 수 있습니다. 내부 클래스는 외부 클래스와 긴밀하게 연결되어 있으며, 외부 클래스의 인스턴스에 종속적인 경우가 많습니다.

  • 코드의 모듈화: 관련된 클래스들을 하나의 외부 클래스 안에 묶어서 코드의 가독성을 높이고, 유지보수를 쉽게 만들 수 있습니다.
  • 데이터 은닉: 외부 클래스의 내부 구현을 숨기고, 특정 기능에 대한 접근을 제한할 수 있습니다.
  • 객체 연결: 외부 클래스의 인스턴스에 종속적인 객체를 만들어, 두 객체 간의 관계를 명확하게 나타낼 수 있습니다.
class Outer:
    class Inner:
        def __init__(self, data):
            self.data = data

    def __init__(self):
        self.inner_obj = self.Inner(42)

outer_obj = Outer()
inner_obj = outer_obj.inner_obj
print(inner_obj.data)  # 출력: 42

내부 클래스의 종류

  • 인스턴스 내부 클래스: 외부 클래스의 인스턴스 메서드 내부에 정의되는 클래스입니다. 외부 클래스의 인스턴스에 종속적이며, 외부 클래스의 인스턴스 변수에 접근할 수 있습니다.
  • 정적 내부 클래스: 외부 클래스의 외부에 정의되며, 외부 클래스의 인스턴스와 독립적으로 사용될 수 있습니다.
  • 지역 내부 클래스: 외부 클래스의 메서드 내부에 정의되며, 해당 메서드의 지역 범위 내에서만 사용될 수 있습니다.

익명 클래스