Найти - Пользователи
Полная версия: Помогите, не пониимаю как сделать
Начало » Центр помощи » Помогите, не пониимаю как сделать
1
collapse
Здравствуйте, нужна помощь с решением 2-х простых заданий. Пожалуйста, помогите….
Постройте класс Pet (домашнее животное) с двумя скрытыми полями: __name (имя) и __age (возраст). Они должны быть доступны для чтения через свойства name и age и недоступны для записи. Метод gettingOlder увеличивает возраст на 1 год. Класс Pet – абстрактный, он имеет абстрактный метод say.
Постройте два класса-наследника – Cat (кошка) и Dog (собака).Они должны реализовать метод say.
Описания классов должны быть в отдельном модуле animals.py.
 from animals import *
p = Dog("Шарик", 5)
p.gettingOlder()
print( p.name + ":", p.age, "лет")
pets = [ Cat("Мурка", 3), p ]
for p in pets:
  p.say() 
Затем добавьте класс Mammal (млекопитающее) – наследник класса Pet и предок для классов Cat и Dog. Он должен иметь метод run (бежать), который выводит сообщение вида «Вася побежал».
 from animals import * 
pets = [Cat("Мурзик", 3), 
        Dog("Шарик", 5) ]
for p in pets:
  p.say()
  p.run() 
py.user.next
collapse
Класс Pet – абстрактный, он имеет абстрактный метод say.
Что такое абстрактный класс? Что такое абстрактный метод?
Если не знаешь ответы на эти вопросы (нет в лекциях, например), то выкинь на помойку весь этот курс, который проходишь.
collapse
py.user.next
Да, но мне это задание сдать надо(((
py.user.next
Не надо тебе его сдавать, пусть этот препод и дальше ебётся с новичками, не трать время на него. Он всё равно так и сдохнет, ничего не написав за всю свою жизнь.

Писать абстрактный класс, не зная, что такое абстрактный класс, - это глупость несусветная.
collapse
Это всё конечно круто, но у меня сессия у него(
xam1816
collapse
Это всё конечно круто, но у меня сессия у него(
не знаю на сколько правильно, скажете потом что препод сказал
  
from abc import ABC, abstractmethod
 
class Pet(ABC):
    def __init__(self, name, age):
        self.__name = name
        self.__age = age
 
    @property
    def name(self):
        return self.__name
 
    @property
    def age(self):
        return self.__age
 
    @abstractmethod
    def say(self):
        pass
 
    def gettingOlder(self):
        self.__age += 1
 
class Mammal(Pet):
    def run(self):
        print(f'{self.name} побежал')
 
class Dog(Mammal, Pet):
    def __init__(self, name, age):
        super().__init__(name, age)
 
    def say(self):
        print('гав-гав')
 
class Cat(Mammal, Pet):
    def __init__(self, name, age):
        super().__init__(name, age)
 
    def say(self):
        print('мяу-мяу')
 
if __name__ == '__main__':
    p = Dog("Шарик", 5)
    p.gettingOlder()
    print(p.name + ":", p.age, "лет")
    pets = [Cat("Мурка", 3), p]
    for p in pets:
        p.say()
    pets = [Cat("Мурзик", 3),
            Dog("Шарик", 5)]
    for p in pets:
        p.say()
        p.run()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB