본문 바로가기

카테고리 없음

클래스 연습 (식당메뉴)

식당에서 메뉴를 보여주고 삭제하는 기능을 클래스로 구현해보자.

#오후시간 시작
#class 정리 
#클래스 : 메뉴(메뉴 보여주기, 메뉴추가, 삭제), 상점()

class Menu:
    def __init__(self):
        self.menus = dict() #menus라는 딕셔너리를 하나 생성함.
        
    
    def add_menu(self, name, price):  #메뉴를 추가하는 기능
        if name in self.menus.keys(): #self.menus라는 딕셔너리의 키들을 name이라는 변수로 받아서
            print("이미 있는 메뉴입니다.") #add_menu로 받은 이름이랑 겹치면 이미 있다고 출력
        else:
            self.menus[name] = price     #그렇지 않으면 받은 이름과 가격을 추가해준다는 코드
    def delete_menu(self, name):
        del self.menus[name]			#delete_menu통해 받은 것을 삭제해줌.

    def show_menus(self):
        print("우리 메뉴")
        for name, price in self.menus.items():		#.items()라는 함수를 통해서 내 딕셔너리에 있는
            print(f"{name}: {price}")				#키와 값들을 한번에 불러와서 조회

 

 

menu = Menu()   		#인스턴스 하나 만든다음 (실제로 생성된 객체)


menu.add_menu('돌체라떼', 5000)
menu.add_menu('라떼', 4500)
menu.add_menu('케이크', 10000)


menu.menus

menu.show_menus()

menu.delete_menu('라떼')

menu.show_menus()

 

 

코랩환경에서 작동 잘한다.

 

 

 

이것을 가지고 Shop이라는 클래스를 새로 만들어서 연동할 수 있다. 

현재 마지막 코드인 menu.show_menus()를 작동하면 

우리메뉴

돌체라떼: 5000

케이크: 10000

이 세 줄이 출력된다. 

 

 

class Shop:
    def __init__(self, menus, shop_name, address):
        self.shop_name = shop_name
        self.address = address
        self.menus = menus
    def show_shop_menus(self):
        print("월클서비스 제공하겠습니다.")
        self.menus.show_menus()

 

 

shop = Shop(menu, '멋사카페', '스페인')
shop.show_shop_menus()

 

이렇게 코드를 실행하면, shop이라는 인스턴스 안에 현재 내가 갖고있는 돌체라떼와 케이크라는 메뉴가 담겨있는 그 menu라는 인스턴스를 넘겨준다. 추가로 shop_name과 address라는 변수에 해당하는 것들도 넘겨줌.

 

그리고나서 Shop이라는 클래스 안의 show_shop_menus()함수를 호출해주면, 그 안에 있던놈이 위에있는 Menu라는 클래스 안의 함수인 show_menus()를 호출해줘서 현재 우리 메뉴안에 있는 데이터를 출력해준다.