본문 바로가기
Python

python class

by ByteBridge 2019. 1. 3.
반응형
"""
- 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