데이터 분석가

파이썬(Python) 모듈(Module) 활용하기(Feat.커피 자판기 프로젝트) 본문

파이썬(python) 기초

파이썬(Python) 모듈(Module) 활용하기(Feat.커피 자판기 프로젝트)

PlintAn 2023. 3. 27. 10:00

안녕하세요 !

Module

 

이번 시간에는 같은 폴더 내에 있는 라이브러리 안에 있는 function(함수)들을 불러와서 

 

좀 더 간단하게 만들 수 있는 Module을 활용해서 저번 시간에 배운 자판기 프로젝트를 진행해 보겠습니다

 

oop-coffee-machine-start.zip
0.00MB

 

해당 압축 파일을 압축 해제 하신다면 

 

1.menu.py

2.money_machine.py

3.coffee_maker.py

4.main.py

 

 4가지 파일이 있습니다.

 

1번, 2번, 3번 파일에 있는 함수들을 4번째 main 파일에 불러와서 함수를 활용할 겁니다.

 

from menu import Menu, MenuItem
from coffee_maker import CoffeeMaker
from money_machine import MoneyMachine

먼저 menu, coffee_maker, money_machine 파일에 있는 각각의 클래스들을 불러옵니다.

 

 

moneymachine = MoneyMachine() #오른쪽 불러온 클래스들을 왼쪽 문자로 변환
coffeemaker = CoffeeMaker()
menu = Menu()

is_on = True #while 문 활용을 위한 선 True

moneymachine.report() #가독성을 위해 굳이 적습니다
coffeemaker.report()

불러온 클래스들을 왼쪽과 같은 형태로 저장 후

 

moneymachine.report()

coffeemaker.report()

 

두 값들은 이미 클래스를 불러왔기에 사실 적지 않아도 되는 코드인데

 

뒤에 있을 반복문에서 사용할 거기 때문에 적어 봤습니다.

 

while is_on: 
  options = menu.get_items() #다루기 편한 이름으로 변환
  choice = input(f"What would you like ? ({options}) :") #메뉴 중 어떤 것을 선택??
  if choice == "off": #"off"는 false 와 같다
      is_on = False #"off" 선택 시 종료
  elif choice == "report": #"report" 선택 시
    coffeemaker.report() #남은 재료들을 보고합니다
    moneymachine.report() #받은 돈을 보고합니다
  else:
    drink = menu.find_drink(choice) #주문한 메뉴
    if coffeemaker.is_resource_sufficient(drink) and moneymachine.make_payment(drink.cost):
      coffeemaker.make_coffee(drink)

 

if와 elif는 주문을 제외한 '종료', '보고'와 같은 예외적인 경우에 해당합니다

 

else의 경우 일반적인 주문을 받은 상태

 

주문한 메뉴에 대한 충분한 재료가 있는지  동시에 충분한 돈을 투입하였는지 확인합니다

 

위 두 조건이 만족됐다면 주문 접수가 완료되면서 커피가 제공됩니다.

 

 

기존에 사용 했던 프로젝트에 비해 거의 3/1 수준으로 코드가 줄어든 거 같습니다

 

이처럼 간편하게 함수들을 불러 올 수 있는 클래스 함수를 알아보았는데요

 

올려둔 파일로 수행하면서 잘 출력 되는지 확인해봅시다 !

 

 

 

 

Comments