Как решить задачу c классом эрик мэтиз python
Изучаю программирование по книге самоучителю, решаю задачу с классом.
Ресторан: создайте класс с именем Restaurant. Метод __init__() класса Restaurant должен содержать два атрибута: restaurant_name и cuisine_type. Создайте метод describe_restaurant(), который выводит два атрибута, и метод open_restaurant(), который выводит сообщение о том, что ресторан открыт. Создайте на основе своего класса экземпляр с именем restaurant. Выведите два атрибута по отдельности, затем вызовите оба метода.
Мой примерный код:
class Restaurant():
def _init_(self, name, tip):
self.name = name
self.tip = tip
def describe_restaurant():
print("Hello, visitor!" + self.name.title() + "welcome to you!")
def open_restaurant():
print("It is" + self.tip)
my_restaurant = ['natalia' , 'ukrainian']
print("Hello, visitor!")
print(describe_restaurant())
Ответы (3 шт):
Чтобы создать экземпляр класса нужно сделать следующее:
# теперь в переменной r содержится экземпляр класса
r = Restaurant(name='test', type='test')
# можно менять свойства экземпляра класса
r.name = 'first_restaurant'
# или вызывать методы класса
r.open_restaurant()
В общем, судя по коду, не добавлен self в метод describe_restaurant(), а также в open_restaurant(). Именно поэтому в обоих выводах ничего не вывелось. Также, методы вообще не вызваны, что крайне печально, ведь в книге должен описываться пример построения класса. Плюс ко всему, неправильно записаны данные о ресторане, имя и тд.
class Restaurant:
def __init__(self, r_name, cuisine_type):
self.r_name = r_name
self.cuisine_type = cuisine_type
def describe_restaurant(self):
print("\nRestaurant name: " + self.r_name.title())
print("Restaurant type: " + self.cuisine_type.title())
def open_restaurant(self):
print("Restaurant" + self.r_name.title() + "is open!")
my_restaurant = Restaurant(" Harbin ", "asian food")
my_restaurant.describe_restaurant()
my_restaurant.open_restaurant()
class Restaurant():
def __init__(self, restaurant_name, cuisine_type):
self.restaurant_name = restaurant_name
self.cuisine_type = cuisine_type
def describe_restaurant(self):
'''' метод выводит название ресторана и кухню'''
name_type = f"Ресторан:{self.restaurant_name}, Кухня:{self.cuisine_type}"
return name_type.title()
def describe_restaurant_name(self):
'''' метод выводит название ресторана'''
name_rest = f"Название ресторана: {self.restaurant_name}"
return name_rest.title()
def describe_restaurant_cuisine(self):
'''' метод выводит кухню ресторана'''
cuisine_rest = f"Кухня в ресторане: {self.cuisine_type}"
return cuisine_rest.title()
def open_restaurant(self):
'''' метод выводит информацию, что ресторан открыт'''
return "Ресторан открыт"
restaurant = Restaurant('Уральские пельмени', 'пельмени и варенники' )
print(restaurant.describe_restaurant_name()) # печатаю название ресторана
print(restaurant.describe_restaurant_cuisine()) # печатаю тип кухни в ресторане
print('Название ресторана и кухня: ',restaurant.describe_restaurant()) # # печатаю название и тип кухни в ресторане
print(restaurant.open_restaurant()) # сообщение, что ресторан открыт
print(restaurant.describe_restaurant(), restaurant.open_restaurant()) # Имя и кухня ресторана + сообщение, что ресторан открыт