02. 클래스 기본 문법 (Self 이해하기)
"클래스 안의 함수들은 항상 첫 번째 재료로
self를 받습니다. '나 자신'을 챙겨야 하기 때문입니다."
1. __init__ (태어날 때 하는 일)
사람이 태어날 때 이름과 나이를 갖듯이, 인스턴스가 생성될 때 초기 상태를 설정해주는 약속된 함수(생성자)입니다.
class Person:
def __init__(self, name, age):
self.name = name # 내 이름은 들어온 name이야
self.age = age # 내 나이는 들어온 age야
2. 메서드 (행동 정의)
클래스 안에 만든 함수를 메서드(Method)라고 부릅니다. 일반 함수와 다른 점은, 주어(Subject)가 있다는 점입니다.
3. self의 정체
- 우리가 쓸 때:
p1.introduce()(괄호 안에 아무것도 안 넣음) - 실제 동작:
Person.introduce(p1)(자동으로 p1이 self 자리로 들어감)
self는 "지금 행동하고 있는 바로 그 녀석"을 가리킵니다.
4. 객체끼리의 만남 (Interaction)
클래스 하나만으로는 재미가 없습니다. 클래스가 다른 클래스를 재료로 쓸 때 진짜 프로그래밍이 시작됩니다.
class Team:
def __init__(self):
self.members = [] # 빈 리스트 (여기에 사람을 담자!)
def add_member(self, person):
self.members.append(person) # Person 객체를 리스트에 추가
"팀(Team) 클래스는 사람(Person) 클래스를 담는 그릇이 됩니다."