Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
6
Определение нарушений принципов SOLID в представленном фрагменте кода
Условие задачи
Определите, какие из принципов SOLID не соблюдены в следующем примере кода:
class Invoice:
def __init__(self, order_id, amount):
self.order_id = order_id
self.amount = amount
self.filename = f'invoice_{order_id}.pdf' # Имя файла инвойса
self.data = self.generate_invoice_data() # Генерация содержимого инвойса в формате PDF
self.pdf_data = generate_invoice_pdf(self.data) # Генерация содержимого инвойса в формате PDF
def calculate_average_price_for_all_years(self):
all_orders = db.session.query(Order).all()
average = 0
n = 0
for order in all_orders:
order_price = order.order_details['price']
n += 1
average = (average + order_price) / n
return average
def generate_account_report(self, order):
average_price_for_all_orders = self.calculate_average_price_for_all_years()
return f"Текущая цена заказа: {order.order_details['price']}. " \
f"Средняя цена всех заказов за все время: {average_price_for_all_orders}"
def generate_invoice_data(self):
return "<h3>Инвойс для заказа №</h3><p>Сумма к оплате: {}".format(self.order_id, self.amount)