self 매개변수
Coddy Python 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 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()
# 파이썬은 실제로 이렇게 수행합니다:
Car.describe(my_car)self 매개변수는 각 객체가 자신의 데이터에 접근할 수 있게 해줍니다. self가 없다면, 메서드는 어떤 객체의 속성을 사용해야 할지 알 수 없을 것입니다.
핵심 포인트: 메서드 정의 시 self를 항상 첫 번째 매개변수로 포함하세요. 하지만 메서드를 호출할 때는 이를 전달하지 마세요. 파이썬이 이를 자동으로 처리합니다.
챌린지
쉬움car.py에 있는 Car 클래스에 self 매개변수를 사용하여 자동차의 연식(year), 제조사(make), 모델(model)을 다음 형식으로 출력하는 display_info 메서드를 추가하여 완성하세요:
"This car is a [year] [make] [model]".
car.py:display_info메서드를 추가할Car클래스 정의가 포함되어 있습니다driver.py:Car클래스를 가져와서 사용하는 메인 실행 파일입니다
driver.py 파일은 Car 클래스를 가져와서 구현 내용을 테스트하기 위한 인스턴스를 생성합니다. 드라이버 파일에서 호출했을 때 메서드가 올바르게 작동하는지 확인하세요.
치트 시트
self 매개변수는 메서드 내에서 클래스의 인스턴스를 가리키며, 현재 객체의 속성에 접근하고 수정할 수 있게 해줍니다.
self는 메서드 정의에서 항상 첫 번째 매개변수여야 합니다:
class Car:
def honk(self):
print("Beep beep!")
def describe(self):
print(f"I am a {self.color} {self.model}")객체를 생성하고 속성을 추가합니다:
my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"메서드 호출 (파이썬은 자동으로 객체를 self로 전달합니다):
my_car.honk() # Beep beep!
my_car.describe() # I am a Red Sedan핵심 포인트: 메서드 정의 시 항상 self를 첫 번째 매개변수로 포함하되, 메서드를 호출할 때는 절대 전달하지 마세요.
직접 해보기
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이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.