"""Реализация дескриптора с комиссией"""


class Value:
    """Значение"""

    def __init__(self):
        """Конструктор класса"""

        self.amount: "float" = 0.0

    def __get__(self, obj, obj_type) -> "float":
        """Возвращение значения"""

        return self.amount

    def __set__(self, obj, value):
        """Присваивание значения"""

        self.amount = value - value * obj.commission


class Account:
    """Счет"""

    amount: "Value" = Value()

    def __init__(self, commission):
        """Конструктор класса"""

        self.commission: "float" = commission

    def __str__(self) -> "str":
        """Строковое представление класса"""

        return f"{self.commission}"

    def __repr__(self) -> "str":
        """Строковое представление класса"""

        return f"Account({self.commission})"
