Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
7
SOLID‑рефакторинг: переработка класса FileStats
Условие задачи
Необходимо изменить класс FileStats так, чтобы он полностью соответствовал принципам SOLID. Требуется разделить ответственность между отдельными компонентами и избавиться от проверок, зависящих от расширений файлов, внутри методов.
class FileStats:
def __init__(self, *extensions):
self.file_count = 0
self.extensions = extensions
self.line_total = 0
self.column_total = 0
def increase(self, **kwargs):
self.file_count += 1
if 'txt' in self.extensions or 'csv' in self.extensions:
self.line_total += kwargs.get('lines', 0)
if 'csv' in self.extensions:
self.column_total += kwargs.get('columns', 0)
def __str__(self):
result = f'Files count = {self.file_count}'
if 'txt' in self.extensions or 'csv' in self.extensions:
result += f'\ntotal lines = {self.line_total}'
if 'csv' in self.extensions:
result += f'\ntotal columns = {self.column_total};'
return result