|
4 / 1 / 1
Регистрация: 24.10.2013
Сообщений: 91
|
||||||
Первые шаги в ООП, пара ошибок22.10.2015, 18:37. Показов 3121. Ответов 6
Метки нет (Все метки)
Вот задание: Напишите программу «Зооферма», в которой будет создано несколько объектов класса Critter, а манипулировать
ими всеми можно будет с помощью списка. Теперь пользователь должен заботиться не об одной зверюшке, а обо всех обитателях зоофермы. Выбирая пункт в меню, пользователь выбирает действие, которое хотел бы выполнить со всеми зверюшками: покормить их, поиграть с ними или узнать об их самочувствии. Чтобы программа была интереснее, при создании каждой зверюшки следует назначать ей случайно выбранные уровни голода и уныния.
Недавно только начал изучать ООП и у меня такие вопросы: 1. Мне надо сделать функцию создания зверька, поэтому подскажите мне мне правильно организовать инкапсуляцию с 58 по 68 строки. Там будет функция показа имен зверюшек и ещё не созданная функция появления зверька. 2. Если запрашиваю имя и самочувствие зверька мне пишет, что: Привет меня зовут "как то там" и я чувствую себя <function Critter.mood at 0x0054EB70> . Как в нормальной форме вывести самочувствие?) 3. Если хочу покормить вылетает ошибка: Traceback (most recent call last): File "D:\workspace eclipse\Программные объекты\TVobject.py", line 90, in <module> Critter.eat() TypeError: eat() missing 1 required positional argument: 'hunger' Если хочу поиграть вылетает ошибка: Traceback (most recent call last): File "D:\workspace eclipse\Программные объекты\TVobject.py", line 93, in <module> Critter.play() TypeError: play() missing 1 required positional argument: 'boredom' Подскажите пожалуйста как решить это.
0
|
||||||
| 22.10.2015, 18:37 | |
|
Ответы с готовыми решениями:
6
Первые шаги в ООП ООП, первые шаги Первые шаги с ATMEGA8-16PU, и первые ссадины |
|
4 / 1 / 1
Регистрация: 24.10.2013
Сообщений: 91
|
|
| 22.10.2015, 19:52 [ТС] | |
|
Спасибо! Это помогло.
Добавлено через 9 минут Это помогло.НО. Я в этом моменте сомневаюсь просто немного. Мне же по сути надо, чтобы mood применялся именно к классу, а не объекту, поэтому я делаю его как статический метод с помощью @staticmethod. Значит, методу незачем передавать ссылку(self) на объект и параметр для сохранения такой ссылки, теряет смысл. А у меня получается тогда противоречие в коде. Без применения self он не работает ![]() Помогите пожалуйста разобраться! А то зверушка чувствует себя ужасно, а я не могу её покормить
0
|
|
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 22.10.2015, 21:12 | |
|
oks1d, Там дело вообще даже близко не в self.
У тебя метода и eat и play есть обязательный аргумент, а ты ничего не предаёшь в эти функции отсюда и ошибка. Тут дело даже близно не в ООП, ты банально не передаёшь в функцию требуемые аргументы и все.
0
|
|
| 22.10.2015, 21:17 | ||
|
0
|
||
|
4 / 1 / 1
Регистрация: 24.10.2013
Сообщений: 91
|
||||||
| 22.10.2015, 21:22 [ТС] | ||||||
|
Совсем не заметил(,
Вот передал
NameError: name 'hunger' is not defined
0
|
||||||
| 22.10.2015, 21:26 | ||
|
Вызывай тогда Critter.eat(Critter.hunger)
0
|
||
| 22.10.2015, 21:26 | |
|
Помогаю со студенческими работами здесь
7
Первые шаги первые шаги Первые шаги Первые шаги Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|