Байланысты: Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )
165 в переменных с разными именами или занимают разные позиции в списке или
словаре:
УПРАЖНЕНИЯ 9-1 . Ресторан: создайте класс с именем Restaurant . Метод __init__() класса Restaurant дол-
жен содержать два атрибута: restaurant_name и cuisine_type . Создайте метод describe_
restaurant(), который выводит два атрибута, и метод open_restaurant(), который выводит
сообщение о том, что ресторан открыт .
Создайте на основе своего класса экземпляр с именем restaurant . Выведите два атрибута по
отдельности, затем вызовите оба метода .
9-2 . Три ресторана: начните с класса из упражнения 9-1 . Создайте три разных экземпляра,
вызовите для каждого экземпляра метод describe_restaurant() .
9-3 . Пользователи: создайте класс с именем User . Создайте два атрибута first_name и last_
name, а затем еще несколько атрибутов, которые обычно хранятся в профиле пользова-
теля . Напишите метод describe_user(), который выводит сводку с информацией о пользо-
вателе . Создайте еще один метод greet_user() для вывода персонального приветствия для
пользователя .
Создайте несколько экземпляров, представляющих разных пользователей . Вызовите оба
метода для каждого пользователя .
Работа с классами и экземплярами
Классы могут использоваться для моделирования многих реальных ситуаций. По-
сле того как класс будет написан, разработчик проводит б
у
льшую часть времени
за работой с экземплярами, созданными на основе этого класса. Одной из первых
задач станет изменение атрибутов, связанных с конкретным экземпляром. Атрибу-
ты экземпляра можно изменять напрямую или же написать методы, изменяющие
атрибуты по особым правилам.
Класс Car
Напишем класс, представляющий автомобиль. Этот класс будет содержать инфор-
мацию о типе машины, а также метод для вывода краткого описания:
car.py class Car():
"""Простая модель автомобиля."""
def __init__(self, make, model, year):
"""Инициализирует атрибуты описания автомобиля."""
self.make = make
self.model = model
self.year = year
def get_descriptive_name(self):
"""Возвращает аккуратно отформатированное описание."""
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())