oop_4 homework

main
Сергей Ванюшкин 2023-12-03 14:31:48 +03:00
parent 5fc185d629
commit 6f6f705260
2 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,21 @@
Домашнее задание 4.
Создайте родительский класс `Animal` с атрибутами
`name` и `species`. Дайте им также метод `make_sound()`,
который выводит звук, издаваемый животными.
Создайте подклассы `Dog` и `Cat`,
которые наследуют от класса `Animal`.
Дайте каждому из них свой собственный метод
`make_sound()`, который выводит соответствующий
звук (`"Гав"` для собаки и `"Мяу"` для кота).
Добавьте дополнительные методы и атрибуты в подклассы.
Например, метод `bark()` для собаки, который выводит
сообщение о лае, и метод `purr()` для кота,
который выводит сообщение о мурлыкании.
Можно также добавить атрибуты, специфичные для каждого
класса.

View File

@ -0,0 +1,67 @@
"""
Модуль является результатом выполнения практической
домашней работы по теме "Наследование классов"
Задачу решил через абстрактный класс Animal, с абстрактным методом
make_sound, который обязательно должен быть реализован
в дочерних классах(иначе будет Error).
:copyright: Сергей Ванюшкин <pi3c@yandex.ru>
:git: https://git.pi3c.ru/pi3c/StudyRepo_Synergy.git
:license: MIT
2023г.
"""
from abc import ABC, abstractmethod
class Animal(ABC):
def __init__(self, **kwargs):
self.name = kwargs.get("name") or "Безымянное"
self.species = kwargs.get("species") or "Чудище заморское"
@abstractmethod
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
return "Гав"
def bark(self):
return "Лай,лай,лАй, лалаайлай..."
class Cat(Animal):
def make_sound(self):
return "Мяу"
def purr(self):
return "Мурмурмур"
class SomeAnimal(Animal):
def make_sound(self):
return "Кряхтит, скрипит, зубами клацает"
if __name__ == "__main__":
animals = (
Dog(name="Rex", species="Собакен обычный"),
Cat(name="Кузя", species="Котяра хитрожопый"),
Dog(name="Галкин", species="Двортерьер Кусучий"),
SomeAnimal(),
)
for an in animals:
print("Досье")
print("Вид:", an.species)
print("кличка:", an.name)
print("говорит:", an.make_sound())
if isinstance(an, Cat):
print(an.name, "доволен:", an.purr())
elif isinstance(an, Dog):
print(an.name, "злой пес:", an.bark())
print()