Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
2 / 2 / 0
Регистрация: 16.12.2020
Сообщений: 71

Создайте класс Robot

28.08.2022, 22:34. Показов 2950. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создайте класс Robot, у которого есть:
1. атрибут класса population. В этом атрибуте будет хранится
общее количество роботов, изначально принимает значение 0;
2. конструктор _init, принимающий 1 аргумент nаме. Данный метод должен сохранять
атрибут nаме и печатать сообщение вида
"Робот <nаме> был создан". Помимо инициализации робота данный метод должен увеличивать популяцию роботов на единицу;
3. метод destroy, должен уменьшать популяцию роботов на единицу
и печатать сообщение вида "Робот <name> был уничтожен"
4. метод say_hello, которой печатает сообщение вида "Робот <name> приветствует тебя, \
особь человеческого рода"
5. метод класca how_many, который печатает сообщение вида "<population>, вот сколько нас еще осталось"


r2 = Robot("R2-D2") # печатает "Робот R2-D2 был создан"
r2.say_hello() # печатает "Робот R2-D2 приветствует тебя, особь человеческого рода"
Robot.how_many() # печатает "1, вот сколько нас еще осталось"
r2.destroy() # печатает "Робот R2-D2 был уничтожен"


Попытался решить, но в этом моменте проблема : Robot.how_many() # печатает "1, вот сколько нас еще осталось", вместо 1, 0
задача по теме класс и статик метод

вот код:

class Robot:

population = 0

def __init__(self, name):
self.name = name
print(f'Робот {self.name} был создан.')
self.population += 1

def destroy(self):
cls.population -= 1
print(f'Робот {self.name} был уничтожен.')

def say_hello(self):
print(f'Робт {self.name} вам кидает салам')

@classmethod
def now_many(cls):
print(f'{cls.population} вот сколько нас осталось')


r2 = Robot('r2 d2')
r2.say_hello()
Robot.now_many()
r2.destroy()
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.08.2022, 22:34
Ответы с готовыми решениями:

Класс «Robot»
Класс «Robot» Класс инициализируется начальными координатами – положением Робота на плоскости, обе координаты заключены в пределах...

Класс: Создайте класс, осуществляющий подсчет и изменение числа книг.
Привет форумчане. Задачу решил, и даже проверку проходит , но код не нравится. Подскажите как можно было решить более правильно и в каком...

Класс: Создайте класс Person, представляющий информацию о человеке
Создайте класс Person, представляющий информацию о человеке и имеющий следующие члены: вложенные классы: Sex - перечисление,...

3
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
29.08.2022, 09:51
Лучший ответ Сообщение было отмечено Aker05 как решение

Решение

Aker05,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Robot:
 
    population = 0
    
    def __init__(self, name):
        self.name = name
        print(f'Робот {self.name} был создан.')
        Robot.population += 1
    
    def destroy(self):
        Robot.population -= 1
        print(f'Робот {self.name} был уничтожен.')
    
    def say_hello(self):
      print(f'Робт {self.name} вам кидает салам')
    
    @classmethod
    def now_many(cls):
        print(f'{cls.population} вот сколько нас осталось')
 
 
r2 = Robot('r2 d2')
r2.say_hello()
Robot.now_many()
r2.destroy()
Добавлено через 16 секунд
Code
1
2
3
4
5
6
7
8
Робот r2 d2 был создан.
Робт r2 d2 вам кидает салам
1 вот сколько нас осталось
Робот r2 d2 был уничтожен.
 
 
** Process exited - Return Code: 0 **
Press Enter to exit terminal
1
2 / 2 / 0
Регистрация: 16.12.2020
Сообщений: 71
29.08.2022, 12:28  [ТС]
спасибо большое за решение, можно объяснить пожалуйста, почему мы тут используем классметод
0
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
29.08.2022, 16:47
Цитата Сообщение от Aker05 Посмотреть сообщение
спасибо большое за решение, можно объяснить пожалуйста, почему мы тут используем классметод
Потому что переменная population "общая" переменная (переменная класса), а не конкретного экземпляра. Она должна быть "одна на всех", для всего класса, а не у каждого экземпляра своя.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.08.2022, 16:47
Помогаю со студенческими работами здесь

Создать класс, представляющий обучающий класс ClassRoom. Создайте класс ученик Pupil. В теле класса создайте методы void
Добрый день.помогите пожалуйста новичку с решением.буду очень благодарен .заранее благодарю.сам не могу решить.хочется посмотреть код ...

Создайте класс, представляющий учебную группу Group. Создайте класс студент Student
Используя Visual Studio, создайте проект по шаблону Console Application. Создайте класс, представляющий учебную группу Group. Создайте...

Класс Phone. a) Создайте класс Phone, который содержит переменные number, model и weight. б) Создайте три экземпляра это
Класс Phone. a) Создайте класс Phone, который содержит переменные number, model и weight. б) Создайте три экземпляра этого класса. ...

Создайте класс RightTriangle и Создайте производный класс Rectangle
Создайте класс RightTriangle (Прямоугольный треугольник), задаваемый катетами и опишите механизм вычисления его периметра. Создайте...

Создайте класс с именем Money и создайте код, следуя предложенным шагам
ооп Классы и их описание Money- Денежная единица Прежде чем перейти к написанию кода: • изучите предметную область объекта и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru