import datetime as dt class Calculator: records = [] def __init__(self, limit): self.limit = limit def add_record(self, Record): self.records.append([Record.amount, Record.comment, Record.date]) def get_today(self): today_stats = 0 for record in self.records: if record[2] == dt.datetime.now().date(): today_stats += record[0] return today_stats def get_today_remained(self): for record in self.records: if record[2] == dt.datetime.now().date(): self.limit -= record[0] return self.limit def get_week(self): week_stats = 0 for record in self.records: if record[2]>=(dt.datetime.now() - dt.timedelta(days=7)).date(): week_stats += record[0] return week_stats class Record: def __init__(self, amount, comment, date = dt.datetime.now()): self.amount = amount self.comment = comment if isinstance(date, str): self.date = (dt.datetime.strptime(date, '%d.%m.%Y').date()) else: self.date = date.date() class CashCalculator(Calculator): USD_RATE = 74.39 EURO_RATE = 81.45 def add_record(self, Record): Calculator.add_record(self, Record) def get_today_stats(self): Calculator.get_today(self) def get_today_cash_remained(self, currency): self.currency = currency Calculator.get_today_remained(self) if self.currency == 'usd': self.limit /= CashCalculator.USD_RATE self.currency = 'USD' elif self.currency == 'eur': self.limit /= CashCalculator.EURO_RATE self.currency = 'Euro' else: self.currency = 'руб' if self.limit > 0: print(f'На сегодня осталось {round(self.limit)} {self.currency}') elif self.limit == 0: print(f'Денег нет, держись') else: print(f'Денег нет, держись: твой долг - {round(abs(self.limit))} {self.currency}') def get_week_stats(self): Calculator.get_week(self) Calc = CashCalculator(10000) r1 = Record(amount=9145, comment="Безудержный шопинг") r2 = Record(amount=1568, comment="Наполнение потребительской корзины", date="09.03.2019") r3 = Record(amount=1691, comment="Катание на такси") r4 = Record(amount=1777, comment="Винишко", date="02.05.2020") r5 = Record(amount=6356, comment="Корм для шерстяной шкуры", date="30.04.2020") r6 = Record(amount=2780, comment="Синий овраг", date="25.04.2020") Calc.add_record(r1) Calc.add_record(r2) Calc.add_record(r3) Calc.add_record(r4) Calc.add_record(r5) Calc.add_record(r6) print(Calc.get_today_stats()) print(Calc.get_today_cash_remained('rub')) print(Calc.get_week_stats())
Уважаемые программисты, почему при обращении к функциям (три последние строки) - возвращается “None”?