콘텐츠로 이동

02. 클래스 기본 문법 (Self 이해하기)

"클래스 안의 함수들은 항상 첫 번째 재료로 self를 받습니다. '나 자신'을 챙겨야 하기 때문입니다."

1. __init__ (태어날 때 하는 일)

사람이 태어날 때 이름과 나이를 갖듯이, 인스턴스가 생성될 때 초기 상태를 설정해주는 약속된 함수(생성자)입니다.

class Person:
    def __init__(self, name, age):
        self.name = name  # 내 이름은 들어온 name이야
        self.age = age    # 내 나이는 들어온 age야

2. 메서드 (행동 정의)

클래스 안에 만든 함수를 메서드(Method)라고 부릅니다. 일반 함수와 다른 점은, 주어(Subject)가 있다는 점입니다.

    def introduce(self):
        # "내(self) 이름을 말한다"
        print(f"안녕하세요, 저는 {self.name}입니다.")

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) 클래스를 담는 그릇이 됩니다."

Tip: pass 키워드

코드를 짜다가 "나중에 구현할게" 하고 비워두고 싶을 때 씁니다. 아무것도 안 적으면 에러가 나기 때문에, 자리만 차지하는 pass를 적어둡니다.

def complex_logic():
    pass  # TODO: 나중에 짜야지