Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
6
Создание и рассылка отчёта
Компании, где спрашивали:
Ubic
Условие задачи
Необходимо выполнить ревью класса ReportGenerator, который реализует следующие функции:
- формирование отчёта в виде обычного текста или HTML‑страницы;
- запись полученного отчёта в файл;
- отправку отчёта на указанный email‑адрес;
- загрузку ранее сохранённого отчёта из файла.
class ReportGenerator:
def __init__(self, data):
self.data = data
self.report = ""
self.filename = "report.txt"
self.report_type = "text"
def generate_report(self):
print("Generating report...")
if self.report_type == "text":
self.report = self._generate_text_report()
elif self.report_type == "html":
self.report = self._generate_html_report()
else:
print("Unsupported report type")
print("Report generated.")
def _generate_text_report(self):
report = "Text Report\n"
for item in self.data:
report += f"- {item}\n"
return report
def _generate_html_report(self):
report = "<html><body><h1>HTML Report</h1><ul>"
for item in self.data:
report += f"<li>{item}</li>"
report += "</ul></body></html>"
return report
def save_report(self):
with open(self.filename, "w") as f:
f.write(self.report)
print(f"Report saved to {self.filename}")
def send_report(self, email):
print(f"Sending report to {email}")
if "@" not in email:
raise Exception("Invalid email address")
print("Report sent.")
def load_previous_report(self):
print("Loading previous report...")
with open(self.filename, "r") as f:
self.report = f.read()
print("Previous report loaded.")