Пользовательский ввод в классах Python.

_crocodil_

Новичок
Пользователь
Янв 6, 2021
2
0
1
Здравствуйте, я новичок в сфере программирования и только начинаю работать с Python-ом, у меня стоит Windows10. Основная версия Python: Python 3.7(64-bit). Вопрос такого плана, нужно реализовать класс кофейня, в который можно добавлять новые напитки. Как мне создать новый экземпляр класса параметры, которого будут вводиться пользователем.
class Coffeeshop:

def __init__(self, name, price ):
self.name = name
self.price = price

def order_coffee (self):
print("Ваш "+self.name + "готовиться.Ожидайте заказ.")

def issuing_an_order(self):
print("Ваш "+self.name + "готов.Спасибо за заказ.")

def order_cancellation(self):
print("Заказ отменен.")

Coffee05_1 = ("Капучино",120)
Coffee03_1 = ("Капучино",100)
Coffee05_2 = ("Латте", 130)
Coffee03_2 = ("Латте", 110)
Coffee05_3 = ("Американо", 100)
Coffee03_3 = ("Американо", 80)
 

Wolkan

Пользователь
Пользователь
Дек 4, 2020
26
5
3
Ну попробую тебе немного разъяснить что к чему.
Вот мой код твоей кофейни:

Python:
import time

class CoffeeShop:

    def __init__(self, name, price):

        self.name = name

        self.price = price

   

    def order_coffee(self, coffee):

        print("Ваш заказ: "+ coffee + " готовится. Ожидайте.")

        time.sleep(5)

        self.order_done(coffee)

       

    def order_done(self, coffee):

        print("Ваш "+ coffee + " готов. С вас " +str(self.price[coffee]) +" рублей.\n" + "Спасибо за заказ. Ждем Вас снова в " + self.name + "!")

       

    def add_coffe_to_price(self, coffee, cost):

        self.price[coffee] = cost  

macd = CoffeeShop("Макдональдс", {

"Капучино, 0.5":120,

"Капучино, 0.3":100,

"Латте, 0.5":130,

"Латте, 0.3":110,

"Американо, 0.5":100,

"Американо, 0.3":80})

print(macd.price)

macd.add_coffe_to_price("Эспрессо 0.5", 150)

print(macd.price)

macd.order_coffee("Эспрессо 0.5")

print()

time.sleep(5)

kfc = CoffeeShop("KFC", {

"Капучино, 0.5":110,

"Капучино, 0.3":100,

"Латте, 0.5":140,

"Латте, 0.3":110,

"Американо, 0.5":120,

"Американо, 0.3":80})

print(kfc.price)

kfc.add_coffe_to_price("Эспрессо 0.5", 160)

print(kfc.price)

kfc.order_coffee("Эспрессо 0.5")

Ну во-первых: ты создаешь кофейню а не напиток, а значит тебе нужно имя кофейни (name) и ее прарайс (price), которые ты и передаешь в конструктор (__init__) при создании экземпляра класса.
macd = CoffeeShop("Макдональдс", {...})
Где "Макдональдс" - это имя, а {...} - это словарик с твоим прайсом.
Далее тебе нужен метод чтоб твой прайс расширять. Можно это сделать напрямую через аттрибут price:
macd.price['Эспрессо, 0.3'] = 100
Но у меня реализовано функцией add_coffe_to_price. Ну и я еще прикрутил в подачу напитка таймер, чтоб сымитировать ожидание заказа.
Причем обрати внимание, что создав один класс Кофейня, ты можешь на его основе создавать разные экземпляры (Макдональдс, KFC) обладающие нужными тебе набором аттрибутов и схожими методами.
Отмену заказа делать не стал, так как это будет уже потрудней, ну и тебе пока что не нужно. В картинках приложу что программа выдает.
 

Вложения

  • Screenshot_20210106-175032.png
    Screenshot_20210106-175032.png
    101,5 КБ · Просмотры: 3
  • Screenshot_20210106-175137.png
    Screenshot_20210106-175137.png
    114,3 КБ · Просмотры: 4
  • Screenshot_20210106-175036.png
    Screenshot_20210106-175036.png
    151,5 КБ · Просмотры: 4
  • Screenshot_20210106-175242.png
    Screenshot_20210106-175242.png
    168,9 КБ · Просмотры: 4
Последнее редактирование:

_crocodil_

Новичок
Пользователь
Янв 6, 2021
2
0
1
Огромное спасибо Вам за помощь, теперь понял. Сам бы не разобрался с этим. Побольше бы таких отзывчивых людей(y)
 
Последнее редактирование:

Форум IT Специалистов