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 Sedanmy_car.describe()를 호출할 때 self에 아무것도 전달하지 않는다는 점에 주목하세요. Python은 my_car를 self 매개변수로 자동 전달합니다.
내부적으로는 다음과 같이 동작합니다:
# 이렇게 작성하면:
my_car.describe()
# Python은 실제로 이렇게 처리합니다:
Car.describe(my_car)self 매개변수를 사용하면 각 객체가 자신의 데이터에 접근할 수 있습니다. self가 없으면 메서드는 어느 객체의 속성을 사용해야 하는지 알 수 없습니다.
핵심 사항: 메서드를 정의할 때는 항상 self를 첫 번째 매개변수로 포함하지만, 메서드를 호출할 때는 self를 전달하지 마세요. Python이 이를 자동으로 처리합니다.
챌린지
쉬움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이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
객체 지향 프로그래밍의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러