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