일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- HTML
- API
- Game
- Python
- HTTP
- SMTP
- 최저가
- Pygame
- 유데미
- twilio
- 웹페이지
- class
- 프로젝트
- 프로그램
- 계산기
- Sheety
- 오류
- 부트스트랩
- phython
- 파싱
- 게임
- Endpoint
- udemy
- 쉬티
- ndarray
- 웹크롤링
- 파이썬
- API플랫폼
- 상태코드
- Tequila
- Today
- Total
데이터 분석가
파이썬(Python) 모듈(Module) 활용하기(Feat.커피 자판기 프로젝트) 본문
안녕하세요 !
이번 시간에는 같은 폴더 내에 있는 라이브러리 안에 있는 function(함수)들을 불러와서
좀 더 간단하게 만들 수 있는 Module을 활용해서 저번 시간에 배운 자판기 프로젝트를 진행해 보겠습니다
해당 압축 파일을 압축 해제 하신다면
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 수준으로 코드가 줄어든 거 같습니다
이처럼 간편하게 함수들을 불러 올 수 있는 클래스 함수를 알아보았는데요
올려둔 파일로 수행하면서 잘 출력 되는지 확인해봅시다 !
'파이썬(python) 기초' 카테고리의 다른 글
웹 크롤링과 파싱(parsing) (0) | 2023.04.19 |
---|---|
파이썬 requests 모듈로 HTTP 메소드(GET,POST,PUT 등) (0) | 2023.04.05 |
API와 END POINT(Feat.URL)의 개념 (0) | 2023.04.05 |
파이썬 클래스 활용 (0) | 2023.03.29 |
파이썬 프로그래밍의 기초(Data Type) (0) | 2023.02.02 |