Top.Mail.Ru
Ответы

Python. Запрограммируйте класс Money (объект класса оперирует одной валютой) для работы с деньгами?!

Задача.
Запрограммируйте класс Money (объект класса оперирует одной валютой) для работы с деньгами.
В классе должны быть предусмотрены поле для хранения целой части денег (рубли, доллары,евро и тд)
и поле для хранения копеек (копейки,центы,евроценты и тд).
Реализовать методы для вывода суммы на экран,задания значений для частей.
Создайте статический метод для подсчёта кол-ва объектов в программе.
Можно пожалуйста самый простой и понятный ответ с комментариями.

По дате
По рейтингу
Аватар пользователя
Профи
123456789101112131415161718192021222324252627282930313233343536373839404142434445
 class Money: 
    # Статическая переменная для хранения количества объектов 
    _object_counter = 0 
 
    # Инициализатор для установки начальных значений целой части и копеек 
    # По умолчанию устанавливает оба значения в 0 
    def __init__(self, units=0, cents=0): 
        self._units = units 
        self._cents = cents 
        # Увеличение счетчика объектов при создании нового объекта 
        Money._object_counter += 1 
 
    # Метод для установки значения целой части денег 
    def set_units(self, units): 
        self._units = units 
 
    # Метод для установки значения копеек 
    def set_cents(self, cents): 
        self._cents = cents 
 
    # Метод для вывода суммы на экран 
    def display(self): 
        print(f"Сумма: {self._units} рублей {self._cents} копеек") 
 
    # Статический метод для подсчета количества объектов 
    @staticmethod 
    def get_object_count(): 
        return Money._object_counter 
 
 
# Пример использования класса Money 
# Создание объектов 
money1 = Money(10, 50)  # 10 рублей и 50 копеек 
money2 = Money() 
 
# Установка значений через методы 
money2.set_units(5)     # Установка 5 рублей 
money2.set_cents(20)    # Установка 20 копеек 
 
# Вывод сумм на экран 
money1.display()  # Выводит: Сумма: 10 рублей 50 копеек 
money2.display()  # Выводит: Сумма: 5 рублей 20 копеек 
 
# Получение количества созданных объектов 
print(f"Количество объектов: {Money.get_object_count()}")  # Выводит: Количество объектов: 2