Консольное приложение для расчёта площади геометрических фигур.
Демонстрирует принципы полиморфизма через наследование и duck typing.
- Полиморфизм (один интерфейс, разная реализация)
- Наследование (
class Circle(Shape)) - Переопределение методов
- Duck typing (функция
print_areaне проверяет тип) - Интерактивное меню с валидацией ввода
- метод
area()— возвращает 0 (заглушка) - метод
info()— возвращает"Фигура"
Circle— радиус, площадь = π × r²Rectangle— ширина, высота, площадь = width × heightTriangle— основание, высота, площадь = ½ × base × height
- Принимает любой объект, у которого есть методы
info()иarea() - Выводит:
"{info()}: площадь = {area()}"
- Выбор фигуры (1–4)
- Ввод параметров
- Вывод площади
- Выход
- Ввод числа: защита от букв, пустого ввода
- Диапазон: проверка, что число в меню 1–4
- Ввод параметров: любое положительное число
1. Круг
2. Прямоугольник
3. Треугольник
4. Выход
Выберите фигуру (1-4): 1
Введите радиус: 5
Круг: площадь = 78.53981633974483
1. Круг
2. Прямоугольник
3. Треугольник
4. Выход
Выберите фигуру (1-4): 2
Введите ширину: 4
Введите высоту: 6
Прямоугольник: площадь = 24
1. Круг
2. Прямоугольник
3. Треугольник
4. Выход
Выберите фигуру (1-4): 3
Введите длину основания: 3
Введите высоту: 4
Треугольник: площадь = 6.0
- Реализовывать полиморфизм через наследование
- Использовать duck typing (функция работает с любым объектом, у которого есть нужные методы)
- Переопределять методы в дочерних классах
- Строить интерактивное меню с валидацией
- Обрабатывать ошибки ввода
19_polymorphism_shapes/
├── main.py # код программы
└── README.md # документацияpython main.py✅ Проект готов