본문 바로가기

python

class 예제 - (커피 자판기 만들기)

*필자 작성 코드와 선생님 작성코드 비교

 

필자 작성 코드

# coffe machine
    
class Machine:

    def showData(self, cupCount, change):
        print('커피 {0}잔과 잔돈 {1}원' .format(cupCount, change))
    
class CoinIn:
    price = 200
    
    def culc(self):
        coin = int(input('동전을 입력하세요:'))
        if coin >= 200:
            cupCount = int(input('몇잔을 원하시나요:'))
            if coin >= self.price*cupCount:
                change = coin - self.price*cupCount
                Machine.showData(self, cupCount, change)
            else:
                print('요금이 부족합니다')
        else:
            print('요금이 부족합니다')
        
if __name__ == '__main__':
    CoinIn().culc()

동전을 입력하세요:300
몇잔을 원하시나요:1
커피 1잔과 잔돈 100원

 

 

선생님 작성 코드

# 클래스의 포함관계 연습문제 

class CoinIn:
    def calc(self, cupCount):
        re = ""
        
        if self.coin < 200:
            re = "요금이 부족하네요"
        elif cupCount * 200 > self.coin:
            re = "요금이 부족하네요"
        else:
            self.change = self.coin - (200 * cupCount)  # 잔돈 계산
            re = "커피 {}잔과 잔돈 {}원".format(cupCount, self.change)

        return re

class Machine():
    cupCount = 1  # 현재 코드에서는 의미 없음

    def __init__(self):
        self.coinIn = CoinIn()  # 포함

    def showData(self):
        self.coinIn.coin = int(input("동전을 입력하세요 :"))
        self.cupCount = int(input("몇 잔을 원하세요 :"))

        print(self.coinIn.calc(self.cupCount))


if __name__ == '__main__':
    Machine().showData()

동전을 입력하세요 :300
몇 잔을 원하세요 :1
커피 1잔과 잔돈 100원