반응형

🪆 파이썬 완벽 가이드: 마트료시카 인형처럼 품고 있는 내부 클래스
내부 클래스(Inner Class)는 바깥쪽에 있는 클래스(Outer Class)의 뱃속에 들어있는 형태를 말합니다. 이것은 마치 러시아의 전통 인형인 '마트료시카'와 완벽하게 똑같습니다.
가장 바깥쪽에 있는 큰 인형을 먼저 열어야(객체로 생성해야) 그 안에 들어있는 작은 인형(내부 클래스)을 꺼내서 가지고 놀 수 있겠죠?
📖 핵심 원리: 바깥 객체가 있어야 안쪽 객체도 존재한다!
내부 클래스는 보통 바깥쪽 클래스와 아주 밀접한 관계가 있을 때 사용합니다. 예를 들어, '자동차(Outer)' 클래스 안에 '엔진(Inner)' 클래스를 만드는 식입니다. 자동차라는 실체가 먼저 존재해야, 그 자동차에 속한 엔진도 의미가 생기기 때문입니다.
따라서 밖에서 내부 클래스를 사용하려면 반드시 바깥쪽 클래스의 객체(붕어빵)를 먼저 구워낸 다음, 그 객체를 통해서 안쪽 클래스에 접근해야 합니다.
💻 코드로 보는 마트료시카 인형 열기
Python
# [1] 바깥쪽 클래스 (큰 인형)
class OuterClass:
def __init__(self):
print("큰 인형(Outer)이 만들어졌습니다!")
# 바깥 클래스 안에 정의된 내부 클래스 (작은 인형)
class InnerClass:
def display(self):
print("짜잔! 작은 인형(Inner)이 등장했습니다!")
# ---------------------------------------------------------
# ❌ 1. 안쪽 인형만 바로 꺼내려고 하면 에러가 납니다! (보기 2번 오답의 이유)
# inner_obj = InnerClass()
# ⭕ 2. 정답의 흐름: 큰 인형을 먼저 만들고 -> 작은 인형을 꺼냅니다.
# (1) 바깥 클래스의 객체를 먼저 생성합니다.
outer_obj = OuterClass()
# (2) 생성된 바깥 객체(outer_obj)를 통해 내부 클래스의 객체를 생성합니다.
inner_obj = outer_obj.InnerClass()
# 정상적으로 내부 클래스의 기능이 작동합니다!
inner_obj.display()
📝 핵심 한 줄 총정리 요약
"클래스 안에 있는 내부 클래스(Inner Class)를 사용하려면, 반드시 바깥쪽 클래스의 객체를 먼저 생성한 뒤에 그 객체를 징검다리 삼아 안쪽 객체를 만들어야 한다!"
반응형
'두두 IT > 파이썬 퀴즈' 카테고리의 다른 글
| [W3S 오답노트] Python Write to File / Remove File (0) | 2026.05.06 |
|---|---|
| [W3S 오답노트] Python File Handling / Python Open File (0) | 2026.05.06 |
| [W3S 오답노트] Python Encapsulation __ (0) | 2026.05.06 |
| [W3S 오답노트] Python Inheritance (0) | 2026.05.06 |
| [W3S 오답노트] Python Self Parameter (0) | 2026.05.06 |