Python은 객체 지향 프로그래밍(OOP)을 지원하는 언어로, 상속(inheritance)이라는 개념을 사용할 수 있습니다. 상속은 이미 존재하는 클래스를 확장하여 새로운 클래스를 만드는 것입니다. 이를 통해 코드 재사용성과 구조적인 효율성을 높일 수 있습니다. 이번 글에서는 Python에서 상속 사용하는 방법과 예제를 살펴보겠습니다.
상속의 개념
상속은 이미 존재하는 클래스의 모든 속성과 메서드를 새로운 클래스에서 사용할 수 있도록 하는 방법입니다. 이를 통해 코드 재사용성과 구조적인 효율성을 높일 수 있습니다.
예를 들어, 자동차 클래스를 만들 때, 모든 자동차에 공통적으로 존재하는 속성과 메서드를 일일이 작성하는 것은 비효율적입니다. 대신, 자동차 클래스를 상속받아서 스포츠카 클래스, SUV 클래스, 트럭 클래스 등을 만들 수 있습니다. 이러한 하위 클래스들은 상위 클래스의 속성과 메서드를 모두 상속받아서 사용할 수 있으며, 필요한 경우 하위 클래스에서 새로운 속성과 메서드를 추가할 수도 있습니다.
상속 사용 예제
다음은 Python에서 상속을 사용하는 간단한 예제 코드입니다.
class Vehicle:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
def print_info(self):
print(f"{self.year} {self.make} {self.model}")
class Car(Vehicle):
def __init__(self, make, model, year, num_doors):
super().__init__(make, model, year)
self.num_doors = num_doors
def print_info(self):
super().print_info()
print(f"Number of doors: {self.num_doors}")
my_car = Car("Toyota", "Camry", 2021, 4)
my_car.print_info()
위 코드에서는 Vehicle 클래스를 정의하고, Car 클래스를 Vehicle 클래스를 상속받아서 정의합니다. Vehicle 클래스는 make, model, year 속성과 print_info 메서드를 가지고 있습니다. Car 클래스는 num_doors 속성을 추가로 가지고 있습니다. Car 클래스에서 print_info 메서드를 다시 정의해서 Vehicle 클래스의 print_info 메서드를 호출하고, num_doors 속성도 출력하도록 하였습니다.
이제 my_car 객체를 생성하고, print_info 메서드를 호출하면 다음과 같은 결과가 출력됩니다.
2021 Toyota Camry
Number of doors: 4
super() 함수 사용
위 예제에서 super() 함수를 사용하여 부모 클래스의 속성과 메서드를 호출하였습니다. super() 함수는 현재 클래스의 부모 클래스를 참조하는 객체를 반환합니다. 이를 통해 부모 클래스의 메서드를 호출하거나 속성에 접근할 수 있습니다.
Python에서 상속을 사용하면 코드 재사용성과 구조적인 효율성을 높일 수 있습니다. 상속을 사용하면 이미 존재하는 클래스를 확장하여 새로운 클래스를 만들 수 있으며, 이를 통해 필요한 경우에만 새로운 속성과 메서드를 추가할 수 있습니다. super() 함수를 사용하여 부모 클래스의 속성과 메서드를 호출할 수 있습니다.
'팁' 카테고리의 다른 글
익명함수 뜻 (0) | 2023.03.18 |
---|---|
Python Lambda 사용법 (0) | 2023.03.18 |
싱글 스레드 vs 멀티 스레드 (0) | 2023.03.18 |
Javascript에서 var, let, const의 차이점 (0) | 2023.03.18 |
네트워크 프로토콜: TCP/IP (0) | 2023.03.18 |