Menu
CoddyTech

self 매개변수

Coddy Python 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 64개 중 4번째.

self 매개변수는 메서드 내에서 클래스의 인스턴스를 가리킵니다. 이를 통해 현재 객체의 속성에 접근하고 수정할 수 있습니다.

다음은 self를 사용하는 메서드가 있는 클래스의 예입니다:

class Car:
    def honk(self):
        print("Beep beep!")
    
    def describe(self):
        print(f"I am a {self.color} {self.model}")

self 매개변수는 메서드 정의에서 항상 첫 번째 매개변수여야 합니다. 이는 메서드에 어떤 특정 객체가 사용되는지 알려 줍니다.

자동차 객체를 만들고 속성을 추가하세요:

my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"

이제 메서드를 호출하세요:

my_car.honk()
my_car.describe()

출력:

Beep beep!
I am a Red Sedan

my_car.describe()를 호출할 때 self에 아무것도 전달하지 않는다는 점에 주목하세요. Python은 my_car를 self 매개변수로 자동 전달합니다.

내부적으로는 다음과 같이 동작합니다:

# 이렇게 작성하면:
my_car.describe()

# Python은 실제로 이렇게 처리합니다:
Car.describe(my_car)

self 매개변수를 사용하면 각 객체가 자신의 데이터에 접근할 수 있습니다. self가 없으면 메서드는 어느 객체의 속성을 사용해야 하는지 알 수 없습니다.

핵심 사항: 메서드를 정의할 때는 항상 self를 첫 번째 매개변수로 포함하지만, 메서드를 호출할 때는 self를 전달하지 마세요. Python이 이를 자동으로 처리합니다.

challenge icon

챌린지

쉬움

car.py의 Car 클래스를 완성하려면, self 매개변수를 사용해 자동차의 연식, 제조사, 모델을 다음 형식으로 출력하는 display_info라는 메서드를 추가하세요:

"This car is a [year] [make] [model]".

  • car.py: display_info 메서드를 추가할 Car 클래스 정의가 포함되어 있습니다.
  • driver.py: Car 클래스를 가져와 사용하는 메인 실행 파일입니다.

driver.py 파일은 여러분의 Car 클래스를 가져와 인스턴스를 만들어 구현을 테스트합니다. 드라이버 파일에서 메서드를 호출했을 때 올바르게 작동하는지 확인하세요.

직접 해보기

from car import Car

# 코드를 테스트하세요
my_car = Car()
my_car.year = 2020
my_car.make = "Toyota"
my_car.model = "Corolla"

my_car.display_info()  # 다음이 출력되어야 합니다: This car is a 2020 Toyota Corolla
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러