파이썬 클래스 상속 예제: 초보자도 쉽게 이해하는 상속 개념과 super() 함수
안녕하세요, 파이썬 열정 넘치는 여러분! 오늘은 파이썬 클래스 상속 예제를 살펴보려고 해요. “어, 상속이요? 그게 뭐예요?” 하고 고개를 갸우뚱하시는 분들도 계실 텐데요. 걱정 마세요! 이 포스트를 다 읽고 나면 여러분도 파이썬 클래스 상속의 달인이 될 수 있습니다. 자, 그럼 파이썬의 매력적인 세계로 함께 떠나볼까요?
파이썬 상속, 그게 뭐길래?
여러분, 혹시 부모님께 물려받은 유전자나 재산 같은 걸 생각해보신 적 있나요? 파이썬의 클래스 상속도 이와 비슷해요. 부모 클래스가 가진 특성을 자식 클래스가 물려받는 거죠. 이렇게 하면 코드를 재사용할 수 있어서 정말 편리하답니다!
파이썬 클래스 상속 예제

그러면 간단한 예제로 파이썬 상속에 대해서 살펴볼까요?
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
print(f"{self.name}이(가) 소리를 냅니다.")
class Dog(Animal):
def wag_tail(self):
print(f"{self.name}이(가) 꼬리를 흔듭니다.")
buddy = Dog("버디")
buddy.speak()
buddy.wag_tail()(코드 해설)
Animal클래스를 정의합니다. 이게 우리의 부모 클래스예요.Animal클래스는__init__메서드로 이름을 초기화하고,speak메서드로 동물이 소리 내는 걸 표현해요.Dog클래스를 만들고Animal을 상속받습니다. 괄호 안에Animal을 넣어 상속을 표현해요.Dog클래스에는wag_tail메서드를 추가했어요. 개만의 특별한 행동이죠!Dog객체를 만들고speak와wag_tail메서드를 호출합니다.
이렇게 하면 Dog 클래스는 Animal 클래스의 모든 특성을 물려받으면서도, 자신만의 특별한 기능을 가질 수 있어요. 멋지지 않나요?
파이썬 상속 super()로 부모 클래스 호출하기
자, 이제 또 다른 마법 같은 기능인 파이썬 상속 super()에 대해 알아볼까요? super()는 부모 클래스의 메서드를 호출할 때 사용하는 특별한 함수예요. 이걸 사용하면 부모 클래스의 기능을 확장하거나 수정할 수 있답니다.
예제를 통해 살펴볼게요.
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
print(f"{self.name}이(가) 소리를 냅니다.")
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name)
self.breed = breed
def speak(self):
super().speak()
print(f"{self.name}은(는) {self.breed} 종이에요.")
buddy = Dog("버디", "골든 리트리버")
buddy.speak()코드 해설:
Animal클래스는 이전과 같아요.Dog클래스에서__init__메서드를 오버라이드합니다.super().__init__(name)으로 부모 클래스의__init__메서드를 호출해요.breed속성을 추가로 초기화합니다.speak메서드도 오버라이드하고 있어요.super().speak()로 부모 클래스의speak메서드를 먼저 호출한 후,- 추가적인 정보를 출력합니다.
이렇게 하면 부모 클래스의 기능을 그대로 사용하면서도 새로운 기능을 추가할 수 있어요. 정말 편리하죠?
파이썬 다중 상속 super(), 복잡하지만 강력해요!

자, 이제 좀 더 고급 단계로 나아가볼까요? 파이썬에서는 다중 상속이라는 것도 가능해요. 여러 부모 클래스로부터 특성을 물려받을 수 있다는 뜻이죠. 하지만 이건 좀 복잡할 수 있으니 주의해서 사용해야 해요.
다중 상속의 예제를 볼까요?
class Flyer:
def fly(self):
print("날아갑니다!")
class Swimmer:
def swim(self):
print("수영합니다!")
class Duck(Animal, Flyer, Swimmer):
def __init__(self, name):
super().__init__(name)
def speak(self):
print(f"{self.name}이(가) 꽥꽥 소리를 냅니다.")
donald = Duck("도날드")
donald.speak()
donald.fly()
donald.swim()코드 해설:
Flyer와Swimmer클래스를 새로 정의했어요.Duck클래스는Animal(이전 코드블록),Flyer,Swimmer세 클래스를 모두 상속받습니다.__init__메서드에서는super().__init__(name)으로Animal클래스의 초기화를 호출해요.speak메서드는 오리만의 특별한 방식으로 오버라이드했습니다.Duck객체는 세 부모 클래스의 모든 메서드를 사용할 수 있어요.
이렇게 다중 상속을 사용하면 여러 특성을 가진 복잡한 객체를 만들 수 있어요. 하지만 너무 복잡해지면 코드를 이해하기 어려워질 수 있으니 주의해야 해요!
정리하기

자, 여러분! 오늘 우리는 파이썬 클래스 상속의 세계를 탐험해봤어요. 단순한 상속부터 super() 함수의 사용, 그리고 다중 상속까지! 이제 여러분도 파이썬 상속의 달인이 된 것 같지 않나요?
이 지식을 활용하면 더 효율적이고 구조화된 코드를 작성할 수 있을 거예요. 파이썬의 매력에 푹 빠져보는 건 어떨까요? 여러분의 코딩 여정에 행운이 함께하길 바랄게요. 다음에 또 재미있는 파이썬 이야기로 찾아올게요. 안녕히 계세요!
#코드 상세해설
클래스 정의
(Animal 클래스)
class Animal: def __init__(self, name): self.name = name def speak(self): print(f"{self.name}이(가) 소리를 냅니다.")1.
class Animal:: ‘Animal’이라는 클래스를 정의합니다.2.
__init__메서드:
- 클래스의 생성자 메서드입니다.
- 객체가 생성될 때 자동으로 호출됩니다.
name매개변수를 받아self.name에 저장합니다.3.
speak메서드:
- 동물이 소리를 내는 행동을 나타냅니다.
self.name을 사용해 어떤 동물이 소리를 내는지 출력합니다.(Dog 클래스)
class Dog(Animal): def wag_tail(self): print(f"{self.name}이(가) 꼬리를 흔듭니다.")1.
class Dog(Animal):: ‘Dog’ 클래스를 정의하고, ‘Animal’ 클래스를 상속받습니다.2.
wag_tail메서드:
- 개가 꼬리를 흔드는 행동을 나타냅니다.
self.name을 사용해 어떤 개가 꼬리를 흔드는지 출력합니다.(객체 생성 및 메서드 호출)
buddy = Dog("버디") buddy.speak() buddy.wag_tail()
buddy = Dog("버디"): ‘Dog’ 클래스의 인스턴스를 생성하고 이름을 “버디”로 지정합니다.buddy.speak(): ‘Animal’ 클래스에서 상속받은 ‘speak’ 메서드를 호출합니다.buddy.wag_tail(): ‘Dog’ 클래스의 ‘wag_tail’ 메서드를 호출합니다.(실행 결과)
이 코드를 실행하면 다음과 같은 출력이 나타납니다:
버디이(가) 소리를 냅니다. 버디이(가) 꼬리를 흔듭니다.(주요 개념)
- 클래스(Class): 객체를 만들기 위한 틀 또는 설계도입니다.
- 상속(Inheritance): ‘Dog’ 클래스가 ‘Animal’ 클래스의 특성을 물려받는 것을 의미합니다.
- 메서드(Method): 클래스 내에서 정의된 함수로, 객체의 행동을 나타냅니다.
- 인스턴스(Instance): 클래스를 바탕으로 실제로 만들어진 객체를 의미합니다.







