인스턴스 메서드

발행: (2026년 4월 28일 PM 08:47 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

Instance methods

클래스에 대해 배운 후, 메서드에 대해 배워봅시다.

class Time:
    def __init__(self):
        self.hours = 0
        self.minutes = 0

    def print_time(self):
        print(f'Hours: {self.hours}', end=' ')
        print(f'Minutes: {self.minutes}')


time1 = Time()
time1.hours = 3
time1.minutes = 35
time1.print_time()

위 예시에서 print_time인스턴스 메서드입니다—클래스 내부에 정의된 함수로, 특정 인스턴스에 대해 동작합니다.
__init__ 메서드는 새로운 객체가 생성될 때 자동으로 실행되는 특수한 인스턴스 메서드로, 객체의 속성을 초기화합니다.

초보자들이 흔히 저지르는 실수는 메서드의 첫 번째 매개변수로 self를 빼먹는 것입니다. 파이썬은 인스턴스 참조를 첫 번째 인수로 자동으로 전달하기 때문에 self를 빼먹으면 “인수가 너무 많다”는 오류가 발생합니다.

흔한 오류: self를 잊어버림

class Employee:
    def __init__(self):
        self.wage = 0
        self.hours_worked = 0

    def calculate_pay(self):  # `self`가 포함되어야 함
        return self.wage * self.hours_worked


alice = Employee()
alice.wage = 6.25
alice.hours_worked = 15
print(f'Alice earned {alice.calculate_pay():.2f}')

self 매개변수를 생략하면(예: def calculate_pay():), alice.calculate_pay()를 호출할 때 파이썬이 인스턴스를 자동으로 전달하려고 하면서 인수 불일치가 발생해 오류가 발생합니다. self를 추가하면 문제가 해결됩니다.

0 조회
Back to Blog

관련 글

더 보기 »