Вот пример базового приложения Python, которое имитирует упрощенную версию DoorDash. Это приложение (DoorDamnnn) позволит пользователям просматривать список ресторанов, выбирать ресторан и размещать заказ на доставку. Имейте в виду, что это упрощенная версия, и она не будет включать в себя все функции, которые есть у DoorDash.
class Restaurant: def __init__(self, name, menu): self.name = name self.menu = menu class Order: def __init__(self, restaurant, items): self.restaurant = restaurant self.items = items class DoorDash: def __init__(self): self.restaurants = [] self.orders = [] def add_restaurant(self, restaurant): self.restaurants.append(restaurant) def view_restaurants(self): for i, restaurant in enumerate(self.restaurants): print(f'{i+1}. {restaurant.name}') def place_order(self, restaurant_index, items): restaurant = self.restaurants[restaurant_index-1] order = Order(restaurant, items) self.orders.append(order) print(f'Order placed at {restaurant.name} for {items}') if __name__ == '__main__': app = DoorDash() restaurant1 = Restaurant('Pizzeria', {'Pizza': 10, 'Wings': 5}) restaurant2 = Restaurant('Sushi', {'Rolls': 15, 'Sashimi': 20}) app.add_restaurant(restaurant1) app.add_restaurant(restaurant2) print('Welcome to DoorDamnnn') while True: print('Please select an option:') print('1. View restaurants') print('2. Place order') print('3. Exit') choice = input() if choice == '1': app.view_restaurants() elif choice == '2': print('Select a restaurant:') app.view_restaurants() restaurant_index = int(input()) print('Select items:') for i, item in enumerate(app.restaurants[restaurant_index-1].menu.items()): print(f'{i+1}. {item[0]}') items = [input()] app.place_order(restaurant_index, items) elif choice == '3': break else: print('Invalid choice')
Основные классы, используемые в этом коде:
Restaurant
: этот класс используется для представления ресторана. Он имеет два атрибута:name
иmenu
. Атрибутname
— это строка, представляющая название ресторана, а атрибутmenu
— это словарь, представляющий меню ресторана, где ключи — это пункты меню, а значения — цены.Order
: Этот класс используется для представления заказа. Он имеет два атрибута:restaurant
иitems
. Атрибутrestaurant
— это экземпляр классаRestaurant
, который представляет ресторан, в котором был размещен заказ, а атрибутitems
— это список строк, представляющих заказанные позиции.DoorDash
: Этот класс используется для имитации приложения DoorDash. Он имеет два атрибута:restaurants
иorders
. Атрибутrestaurants
— это список экземпляровRestaurant
, которые представляют рестораны, доступные на платформе, а атрибутorders
— это список экземпляровOrder
, которые представляют размещенные заказы.
Класс DoorDash
имеет несколько методов, которые позволяют моделировать работу:
add_restaurant(self, restaurant)
: Этот метод используется для добавления нового ресторана на платформу. Он принимает один параметр,restaurant
, который является экземпляром классаRestaurant
.view_restaurants(self)
: Этот метод используется для отображения списка всех ресторанов, доступных на платформе.place_order(self, restaurant_index, items)
: Этот метод используется для размещения заказа. Он принимает два параметра:restaurant_index
— целое число, представляющее индекс ресторана, в котором размещается заказ, иitems
— список строк, представляющих заказываемые позиции. Этот метод создает новый экземплярOrder
с указанным рестораном и товарами, а затем добавляет его в список заказов.
Основная часть кода находится в блоке if __name__ == '__main__':
.
- В этом блоке создается экземпляр класса
DoorDash
и сохраняется в переменнойapp
. - Затем создаются два экземпляра класса
Restaurant
и добавляются к экземпляруapp
с помощью методаadd_restaurant()
. - Далее программа входит в бесконечный цикл. Цикл представляет пользователю три варианта: «Просмотреть рестораны», «Оформить заказ» и «Выйти».
- Если пользователь выбирает «Просмотреть рестораны», программа вызывает метод
view_restaurants()
для экземпляраapp
. - Если пользователь выбирает «Разместить заказ», программа сначала вызывает метод
view_restaurants()
для отображения списка всех ресторанов, затем предлагает пользователю выбрать ресторан, введя его индекс, а затем предлагает пользователю выбрать элементы, которые он хочет заказать, отобразив меню выбранного ресторана. Затем он вызывает методplace_order()
для экземпляраapp
с выбранным индексом ресторана и элементами. - Если пользователь выбирает «Выход», программа выходит из цикла и завершается.
- Если пользователь вводит неверный выбор, программа выводит сообщение об ошибке.
Это базовая симуляция, вы можете добавить больше по своему усмотрению.
Произведите революцию в процессе написания рекламных текстов с помощью программного обеспечения для копирайтинга на базе искусственного интеллекта, которому доверяют более 4 000 000 пользователей, которое поможет вам создавать высококачественный контент быстрее и эффективнее, чем когда-либо прежде. Подробнее здесь.
И вот оно! Большое спасибо за упорство до конца этой статьи! Надеюсь, вы нашли это полезным. Вы можете следить за мной на Medium.
Если вам понравилась эта статья, не забудьте похлопать в ладоши (совет для профессионалов: это бесплатно).