В прошлом задании для вывода на экран данных о каждом объекте мы писали отдельный код для каждого объекта. Это громоздко и нерационально, ООП позволяет оптимизировать код. В классе Contact создайте метод show_contact(), который будет выводить данные любого объекта типа Contact в том же виде, как сейчас их выводит функция print_contact.
- В теле класса Contact напишите метод
show_contact, который в качестве параметра будет принимать переменнуюself. В теле метода выполнитеprint(), точно такой же, как в функцииprint_contact, только вместо имени объекта в аргументе укажитеself. - Вызовите метод
show_contactдля объектов mike и vlad
Подсказка:
- В теле класса Contact после функции
__init__объявите функцию:def show_contact(self):В тело этой функции скопируйте любой из вызовов print() из функции print_contact(). В скопированной строке имя конкретного объекта замените наself - Обратиться к методу объекта можно так:
имя_объекта.имя_метода()
Код:
class Contact:
def __init__(self, name, phone, birthday, address):
self.name = name
self.phone = phone
self.birthday = birthday
self.address = address
print(f"Создаём новый контакт {name}")
def show_contact(self):
print(f"{self.name} — адрес: {self.address}, телефон: {self.phone}, день рождения: {self.birthday}")
mike = Contact("Михаил Булгаков", "2-03-27", "15.05.1891", "Россия, Москва, Большая Пироговская, дом 35б, кв. 6")
vlad = Contact("Владимир Маяковский", "73-88", "19.07.1893", "Россия, Москва, Лубянский проезд, д. 3, кв. 12")
# обратитесь к методу show_contact() объекта mike
mike.show_contact()
# и к методу show_contact() объекта vlad
vlad.show_contact()