언어 자료구조 알고리즘/프로그래밍 실습

[python] 캡슐화 실습 - 음악가 정의하기

언제나휴일 2020. 10. 29. 15:48
반응형

시나리오

#실습 시나리오
#음악가는 생성할 때 이름(필수), 악기(선택:디폴트 피아노), 스킬(선택: 디폴트 0)을 입력받는다.
#음악가는 이름, 악기, 스킬, 매력(생성 시 0)
#음악가는 '인사하다', '연습하다', '연주하다' 기능을 수행할 수 있다.
#'인사하다'를 수행하면 자신을 소개한다.(이름, 악기,스킬,매력 정보 출력)
#'연습하다'를 수행하면 스킬이 0.1 올라간다. 
#'연주하다'를 수행하면 매력이 스킬*0.1만큼 올라간다.

class Musician:
    def __init__(self,name,instrument='피아노',skill=0):
        self.name = name
        self.instrument = instrument
        self.skill = skill
        self.charm = 0
    def Introduce(self):
        print("{0}연주하는 {1}입니다.".format(self.instrument, self.name))
        print("연주 스킬:{0} 매력:{1}".format(self.skill,self.charm))
    def Play(self):
        self.charm+=(self.skill* 0.1)
    def Ex(self):
        self.skill+=0.1
m1 = Musician("송정수")
m1.Introduce()
for i in range(0,100):
    m1.Ex()
m1.Introduce()
m1.Play()
m1.Introduce()
m2 = Musician("언휴","드럼",2)
m3 = Musician("홍길동",skill=3)
m4 = Musician("야호","기타")
반응형