А зачем протокол IPaymentCalculator, почему бы просто не использовать аннотацию типа - Callable[[Decimal, Decimal | None], Decimal] И как данный протокол обеспечит, например поддержку фрилансерам, которым мы платим за выполненные задачи, а не за период работы. Да и в Decimal передавать float - не очень хорошая практика - >>> from decimal import Decimal >>> Decimal(0.9) * Decimal(1000) Decimal('900.0000000000000222044604925') >>> Decimal('0.9') * Decimal(1000) Decimal('900.0')
01:23:00 - оговорился, должно быть "все что генерализация должно решаться с помощью наследования"
Комментарий для продвижения. Спасибо за видео!
привет) спасибо!
Привет. А что ты думаешь насчет решения этой задачи через миксины? Это относится к решению через наследование?
Привет, да относится, так как в python миксины реализуются через наследование (множественное)
А почему та самая?
потому что она была на одном из тестовых собеседований
А зачем протокол IPaymentCalculator, почему бы просто не использовать аннотацию типа - Callable[[Decimal, Decimal | None], Decimal]
И как данный протокол обеспечит, например поддержку фрилансерам, которым мы платим за выполненные задачи, а не за период работы.
Да и в Decimal передавать float - не очень хорошая практика -
>>> from decimal import Decimal
>>> Decimal(0.9) * Decimal(1000)
Decimal('900.0000000000000222044604925')
>>> Decimal('0.9') * Decimal(1000)
Decimal('900.0')