- Python - 프로그래밍 시작하기
- Python 기초 (Basics)
- Python 변수 (Variables)
- Python 연산자 (Operators)
- Python 리스트 (List)
- Python 튜플 (Tuple)
- Python 문자열 (Strings)
- Python 집합 (Sets)
- Python 딕셔너리 (Dictionary)
- Python 흐름 제어 (Flow control)
- Python 함수 (Function)
- Python 클래스 (Class)
- Python 내장 함수 (Built-in function)
- Python 키워드 (Keyword)
- Keyword - and
- Keyword - as
- Keyword - assert
- Keyword - break
- Keyword - class
- Keyword - continue
- Keyword - def
- Keyword - del
- Keyword - elif
- Keyword - else
- Keyword - except
- Keyword - False
- Keyword - for
- Keyword - from
- Keyword - global
- Keyword - if
- Keyword - import
- Keyword - in
- Keyword - is
- Keyword - lambda
- Keyword - None
- Keyword - not
- Keyword - or
- Keyword - pass
- Keyword - return
- Keyword - True
- Keyword - try
- Keyword - while
- Python 파일 다루기
- Python datetime 모듈
- Python time 모듈
- Python collections.deque
- Python collections.namedtuple
- Python의 선 (Zen of Python)
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
클래스 상속¶
클래스 상속하기¶
클래스를 정의할 때, 괄호안에 다른 클래스를 입력해주면, 그 클래스의 속성을 상속받습니다.
예제¶
class Person:
def __init__(self, age, gender):
self.age = age
self.gender = gender
def say_hello(self):
print('Hello')
p1 = Person(10, 'Male')
print(p1.age, p1.gender)
p1.say_hello()
class Monkey(Person):
pass
m1 = Monkey(12, 'Female')
print(m1.age, m1.gender)
m1.say_hello()
10 Male
Hello
12 Female
Hello
예제에서 Monkey 클래스를 정의할 때 입력해준
Person 클래스는 부모 클래스(parent class) 또는 베이스 클래스(base class) 라고 부르고,
Monkey 클래스는 자식 클래스(child class) 또는 파생 클래스(derived class) 라고 합니다.
메서드 오버라이딩 (Method Overriding)¶
파생 클래스는 베이스 클래스의 메서드를 오버라이드할 수 있습니다.
(같은 객체의 다른 메서드를 호출하는데에는 특별한 우선순위가 없기 때문에, 베이스 클래스에서 다른 메서드를 호출하는 메서드는 그것을 오버라이드하는 파생 클래스의 메서드를 호출하게 될 수 있습니다.)
예제1¶
class Monkey(Person):
def __init__(self, age):
self.age = age
m2 = Monkey(Person)
m2.say_hello()
print(m2.age, m2.gender)
Hello
Traceback (most recent call last):
File "main.py", line 29, in <module>
AttributeError: 'Monkey' object has no attribute 'gender'
파생 클래스의 __init__()
함수는 베이스 클래스의 __init__()
함수를 오버라이드합니다.
이제 Monkey 클래스의 인스턴스를 만들면, 베이스 클래스가 아닌 파생된 클래스의 __init__()
함수가 실행됩니다.
예제2¶
class Monkey(Person):
def __init__(self, age, gender):
Person.__init__(self, age, gender)
m3 = Monkey(3, 'Male')
print(m3.age, m3.gender)
3 Male
위의 예제와 같이 Person 클래스의 __init__()
함수를 그대로 사용할 수 있습니다.
이전글/다음글
이전글 : 클래스 속성 다루기