Наследование и полиморфизм(помогите дописать код)Python 3

akarabin

Новичок
Пользователь
Окт 22, 2021
1
0
1
Нужно вывести данные:
Место,область,город,мегаполис
Код:
import random
 
class Place():
 
  def __init__(self, name, area, population):
    self.name = name
    self.area = area
    self.population = population
    self.inner_places = ["N"]
 
  def add_inner_place(self, new_place):
    if new_place in self.inner_places:
      raise ValueError(f"Это место уже добавлено: {new_place}")
 
    self.inner_places.append(new_place)
    self.population += new_place.population
    self.area += new_place.area
 
  def remove_inner_place(self, place):
    if place not in self.inner_places:
      raise ValueError(f"Этого места здесь нет: {place}")
 
    self.inner_places.remove(place)
    self.population -= place.population
    self.area -= place.area
 
  def get_inner_places(self):
    return self.inner_places
    
    
 
class Region(Place):
    
  def get_cities(self):
    cities = []
    for place in self.inner_places:
      if isinstance(place, City):
        cities.append(place)
    return cities
        
 
  def get_cities_population(self):
    total_city_pop = 0
    for city in self.get_cities():
      total_city_pop += city.population
    return total_city_pop
      
    
 
class City(Place):
 
  def __init__(self, name, area, population, current_mayor, budget):
    super().__init__(name, area, population)
    self.current_mayor = current_mayor
    self.budget = budget
 
  #def set_mayor(self, new_mayor):
    
 
  def get_mayor(self):
    return self.current_mayor


 
class Megapolis(City):
 
  def __init__(self, name, area, population, current_mayor, budget, eco_level):
    self.eco_level = eco_level
    
  def improve_ecology(self, cost):
    budget-=cost
    eco_level+=1
    return eco_level
    
    
 
  def get_eco_level(self):
    return self.eco_level
 

Форум IT Специалистов