Practice 10 : OOP¶
OOP(Object-Oriented-Programming)
Doggy¶
개의 속성과 행위를 정의하는 Doggy 클래스 만들기
구성 요소
초기화 메서드는 인자로 개의 이름과 견종을 받아서 인스턴스 변수에 할당한다.
클래스 변수는 태어난 개의 숫자와 현재 있는 개의 숫자를 기록하는 변수로 구성한다.
개가 태어나면
num_of_dogs
와birth_of_dogs
의 값이 각 1씩 증가한다.개가 죽으면
num_of_dogs
의 값이 1 감소한다.
개는 각자의 이름과 나이가 있다.
bark()
메서드를 호출하면 개는 짖을 수 있다.get_status()
메서드를 호출하면birth_of_dogs
와num_of_dogs
의 수를 출력할 수 있다.
예시)
d1 = Doggy('초코', '푸들')
d2 = Doggy('꽁이', '말티즈')
d3 = Doggy('별이', '시츄')
d1.bark() #=> 왈왈!
d2.bark() #=> 왈왈!
d3.bark() #=> 왈왈!
Doggy.get_status() #=> Birth: 3, Current: 3
class Doggy:
num_of_dogs = 0
birth_of_dogs = 0
def __init__(self, name, breed):
self.name = name
self.breed = breed
Doggy.num_of_dogs += 1
Doggy.birth_of_dogs += 1
def __del__(self):
Doggy.num_of_dogs -= 1
def bark(self):
print('왈왈!')
@classmethod
def get_status(cls):
print(f'Birth: {cls.birth_of_dogs}, Current: {cls.num_of_dogs}')
# 해당 코드를 통해 올바른 결과가 나오는지 확인하시오.
d1 = Doggy('초코', '푸들')
d2 = Doggy('꽁이', '말티즈')
d3 = Doggy('별이', '시츄')
d1.bark() #=> 왈왈!
d2.bark() #=> 왈왈!
d3.bark() #=> 왈왈!
Doggy.get_status() #=> Birth: 3, Current: 3
왈왈!
왈왈!
왈왈!
Birth: 3, Current: 3