|
97 / 20 / 13
Регистрация: 27.02.2018
Сообщений: 60
|
||||||
Класс: Создайте класс, осуществляющий подсчет и изменение числа книг.26.03.2018, 20:44. Показов 10574. Ответов 6
Метки нет (Все метки)
Привет форумчане. Задачу решил, и даже проверку проходит , но код не нравится. Подскажите как можно было решить более правильно и в каком месте. ПС когда смотрю туториалы, читаю про ООП, разбитаю чужую задачу вроде все понятно, а как самому написать, возникают траблы. Да и так как я решил , не вижу вообще зачем тут нужно ООП(В плане приемущества решения данной парадигмой).
Вот задача: Создайте класс, осуществляющий подсчет и изменение числа книг. Названия книг, их количество считываются одной строкой вида 'Boogeyman 66 Battleground 50', число книг - произвольное. В классе должен быть реализован конструктор, деструктор, методы просмотра числа, взятия и возвращения книг. Реализовать вывод начальных значений, взятие по 1 книге, возвращение по 1 книге с выводом текущего числа после вызова каждого из методов, меняющих значение книг. Типичный ответ одной строкой: 'Boogeyman 66 65 66 Battleground 50 49 50'. Пример входных данных: Boogeyman 66 Battleground 50 Пример выходных данных: Boogeyman 66 65 66 Battleground 50 49 50 Вот код:
0
|
||||||
| 26.03.2018, 20:44 | |
|
Ответы с готовыми решениями:
6
Создать класс, представляющий обучающий класс ClassRoom. Создайте класс ученик Pupil. В теле класса создайте методы void Создайте класс точка, имеющая координаты. Класс эллипсов, и класс кругов. Определить иерархию типов Создайте класс, представляющий учебную группу Group. Создайте класс студент Student |
|
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
|
|
| 26.03.2018, 21:35 | |
|
А я вот вообще не понял задачу) И решения тоже не понимаю)
26 строка, нет смысла преобразовывать результат .split() в list() потому что split всегда вернет list. 13, 17, 20 строки, нет смысла хранить в классе свойство book так как оно каждый раз перезаписывается, а вот число на которое ты увеличиваешь или уменьшаешь входные данные в методах take_* и put_* лучше вынести в константу класса. Также из-за того что ты везде в методах класса назвал входной аргумент book совершенно непонятно какой тип дынных в него передавать. Когда переопределяешь методы супер-класса то вместо pass вызывай метод супер-класса, если ты конечно хочешь что бы он выполнился. И по идее можно было все 3 твоих метода класса объединить в один __getattr__(self, attr)
1
|
|
|
97 / 20 / 13
Регистрация: 27.02.2018
Сообщений: 60
|
|
| 26.03.2018, 21:42 [ТС] | |
|
0
|
|
|
151 / 102 / 33
Регистрация: 11.08.2016
Сообщений: 574
|
||
| 26.03.2018, 22:55 | ||
|
2. деструктор. ммм... в питоне в таком классе он не имеет смысла, в детали сборщика мусора здесь вдаваться не место 3. «класс, осуществляющий подсчет и изменение числа книг». КНИГ а не конкретной КНИГИ. А в данной реализации Ваш класс это просто избыточная обертка к числовой переменной, не реализующая никакой дополнительной логики и не предоставляющая ожидаемый уровень абстракции. Ну и наконец, задание Ваше не особо хорошо сформулировано. я бы даже сказал – отвратительно сформулировано. Ничего толком не понятно. Добавлено через 56 минут если привести задачу к более-менее логичному виду, то ее решением будет простой подкласс dict, в котором надо будет реализовать: а) дополнительный способ инициализации из строки вида «name0 count0 name1 count1 …» примерно таким образом: l=text.split()б) методы инкремента и декремента типа def take1(self, name): self[name] -= 1 и def put1(self, name): self[name] += 1
1
|
||
|
Просто Лис
|
||||||
| 27.03.2018, 06:08 | ||||||
|
В первую очередь, когда создаешь класс, ты должен подумать:
1) а какие поля будут у класса? 2) их названия. 3) их типы (строка, целое, float, список, словарь итд) 4) видимость (public, protected, private). (В питоне, пример: self.books, self._books, self.__books). А питоне принято объявлять все поля в инициализаторе (в __init__)
1
|
||||||
|
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 11
|
||||||
| 03.04.2020, 14:24 | ||||||
|
тоже этот курс прохожу тихонько
0
|
||||||
|
0 / 0 / 0
Регистрация: 09.09.2021
Сообщений: 1
|
||||||
| 09.09.2021, 18:37 | ||||||
|
Ужасно составлено и сформулировано задание.
0
|
||||||
| 09.09.2021, 18:37 | |
|
Помогаю со студенческими работами здесь
7
Класс Phone. a) Создайте класс Phone, который содержит переменные number, model и weight. б) Создайте три экземпляра это
Создайте класс, описывающий и реализующий класс-наследник класса треугольник Создайте класс «Растение» и класс, который от него наследуется - «Одуванчик» Создайте класс Квадрат, протестируйте созданный класс в методе Main() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|