본문 바로가기
두두 IT/파이썬 퀴즈

[W3S 오답노트] Python __init__ Method

by DoDo's 2026. 5. 6.
반응형

18

🛠️ 파이썬 완벽 가이드: 객체 초기화 마법사 __init__과 기본값 세팅

클래스로 붕어빵을 구워낼 때, 어떤 붕어빵은 팥을 넣고 어떤 붕어빵은 슈크림을 넣고 싶을 수 있습니다. 객체를 생성하는 바로 그 순간에, 객체 안의 내용물(변수)들을 내 마음대로 꽉꽉 채워 넣게 해주는 기능이 바로 __init__ 메서드(함수)입니다.

📖 1. 핵심 용어 분석

  • __init__ (Initialize):
    • 파이썬에서 앞뒤로 밑줄 두 개(__)가 붙은 함수는 '특별한 상황에 자동으로 실행되는 마법의 함수'입니다.
    • __init__은 붕어빵 틀의 굽기 버튼(())을 누르는 순간 가장 먼저 자동으로 한 번 실행되며 초기 세팅을 담당합니다.
  • self:
    • "지금 막 구워져 나온 바로 이 붕어빵"을 뜻합니다.
    • self.name은 "이 붕어빵의 이름표"라는 뜻이 됩니다. 파이썬 클래스 내부의 함수(메서드)는 항상 첫 번째 자리에 self를 적어주는 것이 절대적인 규칙입니다.
  • 기본 매개변수 (Default Parameter) age=18:
    • 괄호 안에 age를 받기로 해놓고 =18을 붙여두었습니다.
    • 이것은 "주문할 때 나이를 특별히 지정하지 않으면, 무조건 기본으로 18살로 자동 세팅해라!" 라는 뜻입니다. (아무 말 없으면 기본으로 팥을 넣어주는 것과 같습니다.)

💻 2. 코드로 보는 완벽한 흐름

문제가 된 코드를 붕어빵 공장 직원의 시선으로 한 줄씩 해석해 볼까요?

Python
 
# [1] Person이라는 이름의 사람(붕어빵) 틀을 만듭니다.
class Person:
  
  # [2] 객체가 생성될 때 이름(name)과 나이(age)를 받아 세팅합니다. 
  # (단, 나이를 안 알려주면 기본값 18을 씁니다.)
  def __init__(self, name, age=18):
    self.name = name  # 이 사람의 이름표에 받은 이름을 적습니다.
    self.age = age    # 이 사람의 나이표에 받은 나이를 적습니다.

# [3] Person 틀을 작동시켜 p1이라는 사람을 만듭니다! 
# 이때 괄호 안에 "Emil"이라는 이름만 던져주었습니다. (나이는 안 줬네요!)
p1 = Person("Emil")

# [4] p1의 나이를 확인해 봅니다.
print(p1.age)

# 출력 결과: 이름만 주고 나이는 안 줬기 때문에, 
# 기본값으로 설정된 18이 자동으로 들어가서 출력됩니다!

📝 3. 핵심 한 줄 총정리 요약

"객체를 찍어낼 때 __init__ 함수를 사용하면 속을 내 마음대로 커스텀할 수 있으며, 괄호 안에 변수=값 형태로 적어두면 값을 생략했을 때 작동하는 '든든한 기본 옵션'이 된다!"

 

 

⏱️ 파이썬 완벽 가이드: __init__ 함수는 언제 실행될까?

붕어빵 비유로 다시 한번 머릿속에 확실히 각인시켜 드릴게요!

__init__ 함수는 붕어빵 틀의 굽기 버튼(())을 누르는 바로 그 찰나의 순간에 공장 내부에서 자동으로 가장 먼저 실행되는 초기화 장치입니다. 우리가 파이썬에게 "야, 지금 세팅 함수 실행해!" 라고 따로 명령하지 않아도, 파이썬이 알아서 눈치껏 1순위로 실행해 줍니다.

💻 코드로 보는 '자동 실행' 증명하기

정말로 객체를 만들 때 자동으로 실행되는지, __init__ 함수 안에 print()를 넣어서 덫을 놓아보겠습니다.

Python
 
# [1] 붕어빵 틀을 만듭니다.
class Person:
  
  # 초기화 함수 안에 프린트 문을 넣어두었습니다.
  def __init__(self):
    print("🎉 붕어빵이 방금 막 구워졌습니다! (초기화 완료)")

# ----------------------------------------------------

print("공장 가동 준비 완료... 아직 붕어빵은 없습니다.")

# [2] 자, 이제 객체(붕어빵)를 '생성'해 봅니다!
p1 = Person() 

# p1 = Person() 코드 단 한 줄만 실행했을 뿐인데, 
# 화면에는 "🎉 붕어빵이 방금 막 구워졌습니다! (초기화 완료)" 가 자동으로 출력됩니다!

(참고로 보기 중에 있던 '객체를 삭제할 때' 실행되는 함수는 __del__ 이고, '객체를 출력할 때' 실행되는 함수는 __str__ 이라는 별도의 마법 함수들이 파이썬에 존재한답니다. 나중에 더 깊게 배우실 때 만나게 되실 거예요!)


📝 핵심 한 줄 총정리 요약

"클래스 이름 뒤에 괄호 ()를 붙여서 객체를 찍어내는 바로 그 순간! 파이썬은 다른 모든 일보다 먼저 __init__ 함수를 자동으로 1번 실행한다!"

 

 

반응형