Olá, fiz o desafil opcional e mudei um pouco a classe conta e até agora está do meu agrado... Mesmo assim acho que ainda poderia limpar/melhorar mais ainda o código, por exemplo, implementar a localização do usuário e retornar junto com a data formatada.
classe datas.py:
class Data:
def __init__(self, dia, mes, ano):
self.dia = dia
self.mes = mes
self.ano = ano
def print_data(self):
data_formatada = f"{self.dia}/{self.mes}/{self.ano}"
return data_formatada
classe conta.py:
from datetime import date
from datas import Data
class Conta:
def __init__(self, numero, titular, saldo, limite):
print("Construindo objeto... {}".format(self))
self.numero = numero
self.titular = titular
self.saldo = saldo
self.limite = limite
def depositar(self, valor):
self.saldo += valor
print("Deposito realizado com sucesso, seu novo saldo é: {}".format(self.saldo))
def extrato(self):
date_today = date.today()
date_formatado = Data(date_today.day, date_today.month, date_today.year)
print(f"Brasília/DF, {date_formatado.print_data()}.")
print("Saldo é {}".format(self.saldo))
def sacar(self, valor):
if self.saldo < valor:
print("Seu saldo é insuficiente.")
else:
self.saldo -= valor
print("Saque realizado com sucesso, seu novo saldo é: {}".format(self.saldo))
Saída:
>>> conta.extrato()
Brasília/DF, 16/10/2021.
Saldo é 150.0
>>>