Создать программу, которая будет определять, может ли человек купить выбранный им дом или нет. Пояснения по программе:
– создать родительский класс House, хранящий информацию о цене (price) и площади дома (area). Создать дочерний класс SmallHouse, в конструктор которого передается только один параметр price. Условимся, что все дома класса SmallHouse имеют постоянную площадь 50 м2. В родительском класса House создать магический метод __str__(), который будет выводить информацию об объекте.
– создать класс Human, объекты которого имеют публичные атрибуты (name, age) и приватные (money, house). Этот класс должен содержать методы earn_money по зарабатыванию денег. Т.е. каждый раз, вызывая метод earn_money, конкретному человеку должна прибавиться некоторая сумма денег в приватную переменную money. Создать метод buy_house, который будет сравнивать текущее количество денег у человека со стоимостью дома и выводить соответствующее сообщение о возможности или невозможности покупки. Если дом купить можно, то вывести информацию о том, сколько денег осталось на счету у покупателя.
Python.
Ответы на вопрос
Відповідь : Вот пример программы, реализующей задание:
Пояснення: class House:
def __init__(self, price, area):
self.price = price
self.area = area
def __str__(self):
return f"House price: {self.price}, area: {self.area} m2"
class SmallHouse(House):
def __init__(self, price):
super().__init__(price, 50)
class Human:
def __init__(self, name, age, money):
self.name = name
self.age = age
self.money = money
self.house = None
def earn_money(self, amount):
self.money += amount
def buy_house(self, house):
if self.money >= house.price:
self.money -= house.price
self.house = house
print(f"{self.name} has bought a house!")
print(f"{self.name} has {self.money} dollars left")
else:
print(f"{self.name} does not have enough money to buy the house")
# Пример использования классов и методов
if __name__ == '__main__':
house1 = SmallHouse(100000)
house2 = House(500000, 100)
person1 = Human("John", 30, 100000)
person2 = Human("Mary", 25, 50000)
person1.buy_house(house1)
person2.buy_house(house2)
• В этой инфекции заражения три класса: House, SmallHouse и Human. Класс дома содержит информацию о цене и площади дома и определяет магический метод для вывода информации об объекте. Класс SmallHouse является дочерним классом House и определяется конструктором, который классифицируется только как случай, а площадь дома задается европейским значением. Класс Human содержит информацию о человеке (имя, возраст, количество денег и дом) и получает методы заработки денег и покупки дома.
• Пример использования классов и методов находится в конце программы. Создаются два дома и два человека с разным ростом доходов. Затем вызываются методы buy_house для каждого человека, передаются в качестве аргумента объекта дома. Результатом будет вывод сообщений о возможности или невозможности покупки дома, а также информации о том, сколько денег осталось у покупателя.