Как решить задачу 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 шт):

Автор решения: Inventor

Чтобы создать экземпляр класса нужно сделать следующее:

# теперь в переменной r содержится экземпляр класса
r = Restaurant(name='test', type='test')
# можно менять свойства экземпляра класса
r.name = 'first_restaurant'
# или вызывать методы класса
r.open_restaurant()
→ Ссылка
Автор решения: Mr.Robot

В общем, судя по коду, не добавлен 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()) # Имя и кухня ресторана + сообщение, что ресторан открыт
→ Ссылка