|
0 / 0 / 0
Регистрация: 08.04.2019
Сообщений: 10
|
|
Создать абстрактный класс27.05.2019, 16:32. Показов 16198. Ответов 11
Метки python 3.7 (Все метки)
Создать абстрактный класс Figure с методами вычисления площади и периметра, а также методом, который выводит информацию о фигуре на экран. Создать производные классы: Rectangle (прямоугольник), Circle (круг), Triangle (треугольник) со своими методами вычисления площади и периметра. Создать массив n фигур и вывести полную информацию о фигурах на экран.
0
|
|
| 27.05.2019, 16:32 | |
|
Ответы с готовыми решениями:
11
Создать абстрактный класс Создать абстрактный класс «Издание» Создать абстрактный класс CVehicle. На его основе реализовать классы СРТапе, ССаг и CShip |
| 28.05.2019, 09:57 | ||||||
Добавлено через 13 минут Zen26, Что касается методов расчета периметра и площади для произвольной фигуры (например для нарисованного контура зайчика), я не знаю как считать, даже для интеграла нужна функция описывающая контур фигуры. Если найдете алгоритм вычисления периметра и площади для произвольной фигуры, то расчет можно будет вставить в методы вместо "pass".
0
|
||||||
|
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
|
||||||
| 28.05.2019, 09:58 | ||||||
|
Используйте
0
|
||||||
| 28.05.2019, 15:24 | |
|
Рыжий Лис, Возбуждая вручную исключение, Вы же не вычисляете периметр или, площадь. Хотя такой подход позволяет перехватывать эти методы , если они не перехвачены подклассами, и выполнять какие то действия, хотя я не представляю какие. Если же только для выдачи сообщений пользователям, то эти сообщения можно просто выводить в этих методах и без использования запрограммированных исключений. Мне так кажется, или я просто Вас не понял.
Добавлено через 4 минуты Хотя с другой стороны, то, что предлагаете Вы, делает код более понятным и более логически органичным.
0
|
|
| 28.05.2019, 15:41 | ||
|
Добавлено через 3 минуты Я что то подзабыл. Или у Вас это делегирование, и у Вас если этих методов не будет в подклассе, то тоже ничего не произойдет? Лень сейчас лезть в учебник и вспоминать. ![]() Добавлено через 7 минут Вообще немного глупое задание, вычислять то, чего нельзя вычислить. Хотя вот ioprst, что то предложил, что как бы можно вычислить каким то общим методом для любой фигуры. Хотя интуитивно мне кажется это не возможно Если подходить формально, то в условии не говорится, что периметр должен быть непрерывной линией. А среди любых фигур могут быть и дискретные, с разбросанными частями. И как тогда вычислять, понятия не имею.
0
|
||
|
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
|
|
| 28.05.2019, 18:15 | |
|
Viktorrus, идея Рыжего Лиса в том, что если не переопределить методы в потомках, будет возникать исключение, что логично, т.к. абстрактные методы обязаны быть переопределены (из ООП). Просто решение задачи без дополнительных модулей.
0
|
|
| 29.05.2019, 01:13 | |||||||||||||||||||||
|
ioprst, Так я про то и написал, что он программно вызывает исключение. Но при правильно написанных подклассах эти методы не запустятся, а во вторых можно просто в этих методах печатать сообщение об ошибке, поясняющее в чем дело. И программное создание исключения в данном случае ничего особенно не дает. Но если так нравится исключение, то можно и с исключением.
![]() Добавлено через 36 минут Zen26, Извините. я не сразу врубился, что это задание на создание абстрактных классов. Поэтому предложение Рыжий Лис, уместно. Напишите эти методы как предлагает он. Добавлено через 5 минут Вот информация об абстрактных классах у Лутц М. Изучаем Python (4-е издание, 2011) стр. 778-781. "Абстрактные суперклассы – классы, которые предполагают, что часть их функциональности будет реализована их подклассами.
Обратите внимание, как работает класс Provider в предыдущем примере. Когда через экземпляр класса Provider вызывается метод delegate, инициируются две независимые процедуры поиска: 1. При вызове x.delegate интерпретатор отыскивает метод delegate в классе Super, начиная поиск от экземпляра класса Provider и двигаясь вверх по дереву наследования. Экземпляр x передается методу в виде аргумента self, как обычно. 2. Внутри метода Super.delegate выражение self.action приводит к запуску нового, независимого поиска в дереве наследования, начиная от экземпляра self и дальше вверх по дереву. Поскольку аргумент self ссылается на экземпляр класса Provider, метод action будет найден в подклассе Provider. Такой способ «восполнения пробелов» в реализации – обычное дело для платформ ООП. По крайней мере, в терминах метода delegate такие суперклассы, как в этом примере, иногда называют абстрактными суперклассами – классы, которые предполагают, что часть их функциональности будет реализована их подклассами. Если ожидаемый метод не определен в подклассе, интерпретатор возбудит исключение с сообщением о неопределенном имени, когда поиск в дереве наследования завершится неудачей. Разработчики классов иногда делают такие требования к подклассам более очевидными с помощью инструкций assert или возбуждая встроенное исключение NotImplementedError с помощью инструкции raise (более подробно об инструкциях, которые могут возбуждать исключения, мы поговорим в следующей части книги). Ниже приводится короткий пример приема, основанного на применении инструкции assert:
Добавлено через 2 минуты
Если что, то читайте Лутца.
0
|
|||||||||||||||||||||
| 29.05.2019, 13:54 | ||||||||||||
|
Zen26, Понятие абстрактных суперклассов достаточно сложное. Извините, я не сразу сообразил, что здесь требуется.
Из Лутца: " Способ определения абстрактного суперкласса зависит от версии интерпретатора. В Python 3.0 для этих целей используется именованный аргумент в заголовке инструкции class и специальный декоратор @abstract методов. Обе конструкции мы будем подробно рассматривать далее, в этой книге:
в главе 38 "Декораторы" и в главе 39 "Метаклассы" Я их еще не изучал. Поэтому еще раз извините, что сразу не разобрался и запудрил Вам мозги. Может кто-то, кто разбирается с абстрактными суперклассами, поможет Вам. Добавлено через 5 минут
Добавлено через 11 минут Рыжий Лис, Я Вас тоже не сразу понял, извините.
0
|
||||||||||||
|
0 / 0 / 0
Регистрация: 27.05.2019
Сообщений: 122
|
|
| 29.05.2019, 18:56 | |
|
Тупое название "абстрактный класс", как будто бы класс может быть не абстрактным.
0
|
|
| 29.05.2019, 18:56 | |
|
Помогаю со студенческими работами здесь
12
Создать абстрактный класс Издание с виртуальными методами
Создать абстрактный класс «Товар», на его основе создать класс «Автомобиль» Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|