반응형
"""
- person class 를 extends 하여 baby 와 adult class 를 만든다.
- person class 는 기본적으로 age 속성을 가진다.
- person class 는 drive 기능을 가지고 있다.
* 18세 이상이면 운전이 가능 하며, 아니면 운정을 할 수 없다.
- baby class 의 age 값은 18 이하 여야 한다.
- adult class 의 age 값은 18 이상이어야 한다.
- 자동차 클래스는 모델 과 running, ride 기능을 가지고 있다.
-- ride 는 person 객체를 인자로 받아 운전 기능을 수행 하도록 한다.
"""
## Base class 가 될 person class
class Person(object):
def __init__(self,age = 0):
self.age = age
def drive(self):
if self.age >= 18:
print('OK')
else:
raise Exception("Can't drive")
# Person class 상속한 baby class
class Baby(Person):
def __init__(self,age = 1):
if age < 18:
super().__init__(age)
else:
raise ValueError
# Person class 상속한 adult class
class Adult(Person):
def __init__(self,age = 18):
if age >= 18:
super().__init__(age)
else:
raise ValueError
# Car class
class Car(object):
def __init__(self,model=None):
self.__model = model
def run(self):
print('Running')
# Person 객체를 인자 값으로 받도록 하고, person 의 ride 기능을 호출
def ride(self,Person):
Person.drive()
### 사용
baby = Baby()
adult = Adult()
car = Car()
car.ride(adult) # output -> OK
car.ride(baby) # ouput -> Exception: Can't drive
반응형
'Python' 카테고리의 다른 글
타입 힌팅 (0) | 2019.01.06 |
---|---|
함수를 변수처럼 전달하기 (0) | 2019.01.06 |
python 다중 상속 (0) | 2019.01.06 |
python command line args (0) | 2019.01.01 |
Python Basic (0) | 2019.01.01 |